Question

Je peuplant actuellement ma grille de WPF en utilisant une collection de données qui implémente ITypedList, avec les entités contenues mise en œuvre ICustomTypeDescriptor. Toutes les propriétés sont déterminées lors de l'exécution.

Je suis désireux de mettre en œuvre HyperDescriptor pour accélérer les performances, mais l'exemple sur cette page plus fait référence à des types connus plutôt que des propriétés d'exécution.

Je pense que je avais besoin de mettre en œuvre une méthode de GetProperties() personnalisée ou similaire à dire HyperTypeDescriptor quelles sont les propriétés dont il a besoin de regarder, mais ne sais pas où cela devrait être réglé. Je dis qu'il est pas difficile, mais je suis évidemment quelque chose qui manque.

Des conseils appréciés!

Était-ce utile?

La solution

La mise en œuvre de HyperDescriptor est en effet spécifique pour les propriétés de compilation, car il utilise ILGenerator etc et met en cache le code généré. Si vous utilisez ICustomDescriptor vous êtes déjà dans un très différent profil de performance - par exemple, si vos PropertyDescriptors personnalisés fonctionnent avec un dictionnaire ou table de hachage comme un sac de propriétés qu'ils peuvent déjà être nettement plus rapide que la réflexion brute.

peut est possible d'optimiser davantage, mais il me faudrait en savoir plus sur la mise en œuvre spécifique. Mais ce serait un travail non négligeable, donc d'abord vous assurer que ce membre d'accès est en fait un goulot d'étranglement, et que vous ne pouviez pas faire quelque chose de simple comme la pagination ou « mode virtuel » d'abord.

(précision: je suis l'auteur de HyperDescriptor, donc je sais ce domaine bien)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top