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!

War es hilfreich?

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 PropertyDescriptors 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)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top