Typedescriptionprovider / HyperDescriptor Umsetzung
-
22-09-2019 - |
Frage
Ich bin bevölkern derzeit meine WPF Grid eine Datensammlung mit, dass Geräte ITypedList
, wobei die enthaltenen Entitäten ICustomTypeDescriptor
umzusetzen. Alle Eigenschaften werden zur Laufzeit festgelegt.
Ich bin zu wollen up Leistung HyperDescriptor Hilfe Geschwindigkeit implementieren, aber das Beispiel auf dieser Seite bezieht sich mehr auf bekannte Typen statt Laufzeiteigenschaften.
Ich würde denken, dass ich brauchen würde eine benutzerdefinierte GetProperties()
Methode oder ähnlich zu implementieren, um den HyperTypeDescriptor zu sagen, welche Eigenschaften sie zu sehen brauchen, bin aber nicht sicher, wo dieser Satz sein sollte. Ich meine, es ist nicht schwer, aber ich bin offensichtlich etwas fehlt.
Irgendwelche Tipps zu schätzen!
Lösung
Die HyperDescriptor
Implementierung ist in der Tat spezifisch für Kompilierung-Eigenschaften, wie es verwendet ILGenerator
usw. und speichert den erzeugten Code. Wenn Sie ICustomDescriptor
verwenden sind Sie bereits in einem ganz anderen Leistungsprofil - zum Beispiel, wenn Ihre benutzerdefinierten PropertyDescriptor
s arbeiten mit einem Wörterbuch oder Hash-Tabelle als Eigenschaft-Beutel kann sie bereits deutlich schneller als rohe Reflexion.
Es können möglich sein, weiter zu optimieren, aber ich würde müssen mehr über die konkrete Umsetzung kennen. Aber es wäre nicht triviale Arbeit, so zuerst sich selbst davon überzeugen, dass dieses Mitglied-Zugang ist tatsächlich ein Engpass, und dass man konnte nicht etwas Einfaches wie Paging oder „virtuellen Modus“ zuerst tun.
(Klarstellung: Ich bin der Autor von HyperDescriptor, damit ich weiß, diesen Bereich gut)