Pergunta

Atualmente, estou preenchendo minha grade WPF usando uma coleção de dados que implementa ITypedList, com as entidades contidas implementando ICustomTypeDescriptor. Todas as propriedades são determinadas em tempo de execução.

Estou querendo implementar HyperDescriptor Para ajudar a acelerar o desempenho, mas o exemplo dessa página se refere mais a tipos conhecidos do que as propriedades de tempo de execução.

Eu pensaria que eu precisaria implementar um costume GetProperties() Método ou semelhante para informar ao hypertypedecriptor quais propriedades ele precisa observar, mas não tenho certeza de onde isso deve ser definido. Eu acho que não é difícil, mas obviamente estou perdendo alguma coisa.

Quaisquer dicas muito apreciadas!

Foi útil?

Solução

o HyperDescriptor A implementação é realmente específica para propriedades de tempo de compilação, pois usa ILGenerator etc e cache o código gerado. Se você está usando ICustomDescriptor tu es em um perfil de desempenho muito diferente - por exemplo, se o seu costume PropertyDescriptortrabalha contra um dicionário ou mesa de hash como saco de propriedades que podem ser significativamente mais rápido que a reflexão bruta.

Isto poderia Seja possível otimizá -lo ainda mais, mas eu precisaria saber mais sobre a implementação específica. Mas seria um trabalho não trivial, então primeiro satisfaça-se que esse acesso ao membro é na verdade um gargalo e que você não poderia fazer algo simples como pagar ou "modo virtual" primeiro.

(Esclarecimento: sou o autor do HyperDescriptor, então conheço bem esta área)

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