Domanda

Al momento sto che popolano la mia griglia di WPF utilizzando una raccolta di dati che implementa ITypedList, con le entità contenute attuazione ICustomTypeDescriptor. Tutte le proprietà sono determinate in fase di esecuzione.

Sono voler implementare HyperDescriptor per contribuire ad accelerare le prestazioni, ma nell'esempio in quella pagina si riferisce a più tipi noti anziché proprietà operazionali.

Vorrei pensare che avrei bisogno di implementare un metodo GetProperties() personalizzato o simile per dire al HyperTypeDescriptor quali proprietà ha bisogno di guardare, ma non sono sicuro dove che deve essere impostato. Immagino che non è difficile, ma io sono, ovviamente, manca qualcosa.

Eventuali suggerimenti molto apprezzati!

È stato utile?

Soluzione

L'implementazione HyperDescriptor è infatti specifico per le proprietà in fase di compilazione, in quanto utilizza ILGenerator etc e memorizza nella cache il codice generato. Se si utilizza ICustomDescriptor sei già in un ambiente molto diverso profilo delle prestazioni - per esempio, se i PropertyDescriptors personalizzati funzionano contro un dizionario o hash-table come una proprietà-bag essi possono già essere significativamente più veloce di riflessione prima.

possono essere possibile ottimizzare ulteriormente, ma avrei bisogno di sapere di più sulla specifica implementazione. Ma sarebbe lavoro non banale, in modo da soddisfare prima te stesso che a questo utente-accesso è in realtà un collo di bottiglia, e che non si poteva fare qualcosa di semplice come "modalità virtuale" paging o prima.

(precisazione: io sono l'autore di HyperDescriptor, quindi so questa zona bene)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top