Esiste una libreria (come i progetti open source, ecc.) Che rende più semplice l'uso di riflessioni complesse come la creazione di oggetti o classi al volo, l'ispezione di istanze, ecc.?Libreria C# per una facile riflessione dinamica
Grazie
Esiste una libreria (come i progetti open source, ecc.) Che rende più semplice l'uso di riflessioni complesse come la creazione di oggetti o classi al volo, l'ispezione di istanze, ecc.?Libreria C# per una facile riflessione dinamica
Grazie
v'è una disposizione LinFu biblioteca che può fare lotto altri animali interessanti di riflessione ... provare per credere
L'assemblaggio test di unità MS ha PrivateObject e PrivateType che rendono l'accesso a un'istanza/tipo privato membri piuttosto semplici.
Anche se usare questo test esterno è un'idea orribile e orribile ... –
È solo un involucro per quello che puoi fare attraverso il riflesso, quindi non è davvero niente di speciale, ma sono d'accordo che non dovresti fare confusione con cose private nelle istanze/tipi. –
A mio parere, non credo che la riflessione possa essere più facile da usare di quanto non sia ora. Quasi tutte le funzionalità di base sono racchiuse nella classe Type. Prenditi il tuo tempo per imparare come funziona e non avrai bisogno di un altro strato non necessario su di esso.
In particolare, si può fare 'cose complesse' come la creazione di oggetti non inizializzate in questo modo:
// Instantiates an uninitialized object of the specified type.
var newObject = (MyObject)FormatterServices.GetUninitializedObject(elementType);
Beh, un po 'di cache (delle informazioni ottenute dalla riflessione) sarebbe bello. Reflection è piuttosto lento e recuperare lo stesso 'MethodInfo's o' FieldInfo's è ripetutamente un hog delle risorse. (So che la tua risposta è piuttosto vecchia ...) –
ci sono alcune interessanti ReflectionHelpers là fuori.
La riflessione è per definizione difficile. È un livello di riferimento indiretto posto sopra l'intera struttura dell'oggetto. Non sono davvero sicuro di come puoi renderlo più facile, senza limitare il suo potere.
Se la riflessione è difficile, allora potrebbe essere possibile che non si abbia una piena comprensione delle nozioni di base di .Net. Potresti voler provare un tutorial come this.
Intendi, oltre ai tipi nello spazio dei nomi System.Reflection? –
Sì, qualcosa come un involucro attorno ad essi per facilitare l'attività di esecuzione delle attività di riflessione più difficili – pistacchio
Puoi descrivere alcuni di questi "compiti di riflessione dura"? – Trap