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);

È stato utile?

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.

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