propriedades do filtro retornados por TypeDescriptor.GetProperties () dependendo da classe são declaradas em

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

Pergunta

Hey guys. Eu tenho a seguinte situação.

Eu quero usar um TypeDescriptor para obter as propriedades de um certo tipo. A profundidade do tipo na hierarquia de herança pode variar. Eu só quero obter as propriedades declaradas no próprio e não em seus pais (base) tipo. O problema é que quando eu chamo TypeDescriptor.GetProperties () iria devolver tudo declarou-se a hierarquia de herança até objeto.

Eu só vi que eu possa filtrar a saída por atributos, mas eu não quero adicionar outro atributo para as propriedades em meus tipos apenas para isso. Trazê-los através da reflexão e não usando TypeDescriptor faria o que eu quero, mas não é uma opção para mim, porque algumas das propriedades serão adicionados dinamicamente ao tipo em algum ponto.

Todas as idéias? Se a questão não é claro que eu poderia dar um exemplo.

Foi útil?

Solução

Você pode filtrar as propriedades usando a propriedade ComponentType:

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

Outras dicas

Você não pode apenas modificar a implementação de ICustomTypeDescriptor para refletir o seu comportamento desejado?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top