2010-02-22 32 views
5

我目前使用實現了ITypedList的數據集合填充我的WPF網格,其中包含的實體實現了ICustomTypeDescriptor。所有屬性都是在運行時確定的。TypeDescriptionProvider/HyperDescriptor實現

我想實現HyperDescriptor來幫助加快性能,但該頁面上的示例更多地指向已知類型而不是運行時屬性。

我認爲我需要實現一個自定義的GetProperties()方法或類似的告訴HyperTypeDescriptor它需要看什麼屬性,但我不知道應該在哪裏設置。我認爲這並不難,但我顯然錯過了一些東西。

任何提示非常感謝!

回答

4

HyperDescriptor實現的確是特定於編譯時屬性,因爲它使用ILGenerator等並緩存生成的代碼。如果你正在使用ICustomDescriptor在一個非常不同的性能配置已經 - 例如,如果您的自定義PropertyDescriptor對陣字典或哈希表的屬性袋的工作,他們可能已經是顯著快於原始反射。

可能可以進一步優化它,但我需要更多地瞭解具體的實現。但這將是非常重要的工作,所以首先要確保這個成員訪問實際上是一個瓶頸,並且你不能像分頁或「虛擬模式」那樣簡單。

(澄清:我HyperDescriptor的作者,所以我知道這方面的好)

+0

感謝您的澄清,我希望你能看到這個問題!我會首先在我的應用程序上運行一些更多的配置文件,並且可能會發布有關運行時屬性性能改進的另一個問題(如果需要)(我會鏈接)。 – Marcus 2010-02-23 07:47:42