Buongiorno.
Vorrei suggerire l'implementazione di metodo, nell'ambito di IDDocument: tale metodo dovrebbe restituire un semplice numero cardinale, un indice se vogliamo, che identifichi univocamente la classe all'interno dello spazio della applicazione.
Potrebbe essere accessibile sia in versione statica che come metodo istanziato (sulla falsariga di .typename() e .classname()).
Mi azzardo a chiederlo perchè, intuitivamente, immagino che già esista qualcosa di simile nei metadati del progetto inde, semplicemente non venga esposto a noi utilizzatori.
Premetto che mi già mi sono creato autonomamente tale funzione, che tuttavia passa attraverso il metodo .typename(), cerca in seguito in un IDmap (che popolo all'init della applicazione), ed ottiene alla fine il proprio indice.
Non sarebbe male averlo nativo, quindi con performance molto migliori, più adatte alla elaborazione massiva.
Aggiungo qualche dettaglio (lettura opzionale :)), in relazione alla sua utilità: desidero spesso memorizzare metadati di vario genere (es: un array di indici di proprietà di un certo tipo), condivisi chiaramente tra tutte le istanze di una determinata classe.
Lo scopo finale è quello di creare una personale "mappa della applicazione" che possa reagire molto più velocemente rispetto alla reflection. In altri termini, in fase di inizializzazione la reflection popola array e IDmap con questi metadati, che sono quindi disponibili a runtime.
Faccio un esempio ancora più specifico:
- immaginiamo che io abbia una serie di campi/proprietà di classe, dedicati al filtraggio di una qualche collection
- voglio creare una funzione generalizzata che annulli tutti quanti i campi di cui sopra
- quindi tramite reflection cerco tra tutte le proprietà della istanza, quando ne trovo uno con uno specifico tag la setto a null
oppure:
- una tantum in fase di init (sempre runtime) creo un array con gli indici delle proprietà, e lo inserisco in un array/matrice, che ha come indice il numero della classe (una banale matrice di interi, alla fine).
- ogni volta che voglio avere accesso a quelle proprietà faccio un for sull'array ed ottengo gli indici molto più velocemente.
Questa seconda strada ormai la utilizzo praticamente ovunque, da cui il gradimento per una funzione che velocizzasse il primo step, sempre uguale, ovvero decodificare il numero della classe.
Spero sia semplice!