typedescriptor.getProperties ()에 의해 반환 된 필터 속성이 선언 된 클래스에 따라

StackOverflow https://stackoverflow.com/questions/1443314

문제

얘들 아. 나는 다음과 같은 상황이 있습니다.

TypEdescriptor를 사용하여 특정 유형의 속성을 얻고 싶습니다. 상속 계층 구조에서 유형의 깊이는 다를 수 있습니다. 나는 부모 (기본)가 아닌 유형 자체에서 속성을 선언하고 싶습니다. 문제는 typedescriptor.getProperties ()를 호출 할 때 상속 계층 구조를 객체까지 선언 한 모든 것을 반환한다는 것입니다.

나는 속성으로 출력을 필터링 할 수 있다는 것을 알았지만이 유형의 속성에 다른 속성을 추가하고 싶지는 않습니다. Typedescriptor를 사용하지 않고 반사를 통해 그들을 얻는 것은 내가 원하는 것을 수행 할 것이지만, 일부 속성은 어느 시점에서 유형에 동적으로 추가되기 때문에 나에게는 옵션이 아닙니다.

어떤 아이디어? 질문이 명확하지 않으면 예를 제공 할 수 있습니다.

도움이 되었습니까?

해결책

당신은 그것을 사용하여 속성을 필터링 할 수 있습니다 ComponentType 재산 :

var properties = from p in TypeDescriptor.GetProperties(x).Cast<PropertyDescriptor>()
                 where p.ComponentType == x.GetType()
                 select p;

다른 팁

구현을 수정할 수는 없습니다 ICustomTypeDescriptor 원하는 행동을 반영하기 위해?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top