2010-02-22 14 views
5

Ich bearbeite derzeit mein WPF-Grid, das eine Datensammlung verwendet, die ITypedList implementiert, mit den enthaltenen Entitäten, die ICustomTypeDescriptor implementieren. Alle Eigenschaften werden zur Laufzeit bestimmt.Implementierung des TypeDescriptionProvider/HyperDescriptor

Ich möchte HyperDescriptor implementieren, um die Leistung zu beschleunigen, aber das Beispiel auf dieser Seite bezieht sich eher auf bekannte Typen als auf Laufzeiteigenschaften.

Ich würde denken, dass ich eine benutzerdefinierte GetProperties() Methode oder ähnliches implementieren müsste, um dem HyperTypeDescriptor zu sagen, welche Eigenschaften er betrachten muss, aber ich bin nicht sicher, wo das eingestellt werden sollte. Ich denke, es ist nicht schwer, aber mir fehlt offensichtlich etwas.

Alle Tipps sehr geschätzt!

Antwort

4

Die HyperDescriptor Implementierung ist in der Tat spezifisch für Kompilierzeiteigenschaften, da sie ILGenerator usw. verwendet und den generierten Code zwischenspeichert. Wenn Sie ICustomDescriptor verwenden, sind Sie bereits in einem ganz anderen Leistungsprofil - zum Beispiel, wenn Ihre benutzerdefinierte PropertyDescriptor s arbeiten gegen ein Wörterbuch oder Hash-Tabelle als Eigentum Tasche können sie bereits deutlich schneller sein als rohe Reflexion.

Es kann möglich sein, es weiter zu optimieren, aber ich würde mehr über die spezifische Implementierung wissen müssen. Aber es wäre nicht-triviale Arbeit, also überzeugen Sie sich zunächst, dass dieser Member-Zugang eigentlich ein Flaschenhals ist, und dass Sie zuerst nichts Einfaches wie Paging oder "Virtueller Modus" tun könnten.

(Klarstellung: Ich bin der Autor von HyperDescriptor, damit ich weiß, diesen Bereich gut)

+0

Danke für die Aufklärung, ich hatte gehofft, dass Sie diese Frage sehen würde! Ich werde zuerst ein paar mehr Profiling auf meiner App ausführen, und vielleicht eine weitere Frage über die Laufzeiteigenschaften Leistungsverbesserungen, wenn die Notwendigkeit auftreten sollte (ich werde von diesem Link). – Marcus

Verwandte Themen