adhoc struct / classe in C #?
-
28-09-2019 - |
Domanda
Al momento sto utilizzando riflessione con SQL. Trovo se voglio fare una query specializzati è più facile per ottenere i risultati con la creazione di una nuova classe che eredita da un altro e aggiungendo i 2 membri / le colonne per la mia domanda specializzata. Poi a causa di riflessi nel lib nel mio codice C # posso scrivere foreach (var v nella lista) {v.AnyMember e v.MyExtraMember)
Ora, invece di avere la classe sparsi o modificare il mio file principali DB.cs Posso definire una classe all'interno di una funzione? So che posso creare un oggetto anonimo scrivendo new {name = val, nome2 = ...}; ma ho bisogno di un passaggio per questa classe in una funzione func generica (query, args);
Soluzione
Date un'occhiata alla DynamicObject forse potrebbe servire le vostre esigenze, se si nasconde un dizionario dietro la realizzazione di TryGetMember / TrySetMember. C'è un piccolo esempio su questo, seguire il link.
Altri suggerimenti
Lezioni (tipi in generale) non possono essere definite all'interno metodi. Doh.
E 'possibile (anche se non è semplice), ma poi la classe risultante non sarebbe conosciuta al momento della compilazione, in modo da non essere in grado di utilizzare v.MyExtraMember
. Si potrebbe fondamentalmente ottenere un oggetto anonimo creata dinamicamente, in modo che avrebbe dovuto utilizzare la reflection per accedere ai membri aggiuntivi.