> 백엔드 개발 > C++ > 특정 특성(AllowMultiple = false)으로 장식된 C# 속성을 효율적으로 찾을 수 있습니까?

특정 특성(AllowMultiple = false)으로 장식된 C# 속성을 효율적으로 찾을 수 있습니까?

Barbara Streisand
풀어 주다: 2024-12-28 02:28:09
원래의
979명이 탐색했습니다.

How Can I Efficiently Find C# Properties Decorated with a Specific Attribute (AllowMultiple = false)?

C# 속성에서 속성 검색 최적화

.NET 리플렉션 세계에서는 특정 속성으로 장식된 속성 목록을 검색하는 것이 자주 필요할 수 있습니다. 당면한 질문은 AllowMultiple이 false로 설정된 MyAttribute 특성을 포함하는 속성을 식별하는 방법을 다룹니다.

제시된 초기 접근 방식은 t.GetProperties()를 사용하여 모든 속성을 통해 반복된 후 각 속성의 속성을 검사하는 루프가 이어졌습니다. prop.GetCustomAttributes(typeof(MyAttribute), true)를 사용합니다. 이 방법은 작동하지만 여러 특성 인스턴스를 생성하므로 비효율적일 수 있습니다.

다음은 LINQ의 Where 확장 방법을 활용하는 향상된 솔루션입니다.

var props = t.GetProperties().Where(
                prop => Attribute.IsDefined(prop, typeof(MyAttribute)));
로그인 후 복사

이 접근 방식은 특성을 단순화합니다. 각 속성에 대해 Attribute.IsDefined를 직접 호출하여 프로세스를 확인합니다. 이를 통해 인스턴스화하지 않고 원하는 특성의 존재를 효율적으로 확인할 수 있습니다. 이는 특히 속성 수가 많은 유형의 경우 성능을 크게 향상시킵니다.

게다가 결과 props 변수는 PropertyInfo 개체의 IEnumerable이므로 필요에 따라 추가 필터링이나 조작이 가능합니다.

위 내용은 특정 특성(AllowMultiple = false)으로 장식된 C# 속성을 효율적으로 찾을 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿