Ci sono quadri o utilità (nello spazio NET) per la generazione automatica di oggetti di trasferimento dati da oggetti di business

StackOverflow https://stackoverflow.com/questions/2414312

Domanda

sto cercando l'approccio migliore per la generazione di oggetti di trasferimento dati da oggetti di business (la definizione del tipo, non è la mappatura dei dati) utilizzando un insieme di convenzioni (ad esempio, tutte le proprietà pubbliche), ed eventualmente configurabile per determinare come andare in profondità .

Mi rendo conto che questo potrebbe non essere possibile o addirittura auspicabile per molti casi in cui i DTO non assomigliano gli oggetti di business (ad esempio quando l'appiattimento un certo numero di oggetti di business in un unico oggetto di trasferimento dati).

Tuttavia, nel mio caso, una grande percentuale dei miei oggetti di trasferimento dati sono molto simili ai loro oggetti di business (in particolare per la DTO per l'aggiornamento dei dati).

Mi chiedevo se ci sono strumenti di generazione di codice esistente (sto cercando soluzioni specifiche con i modelli esistenti, non solo un codice general purpose strumento gen come CodeSmith), o strumenti per la creazione di montaggio dinamici (per esempio usando Reflection Emit sotto la copertine)? Oppure, se questo è qualcosa che hai fatto prima che io sarei interessato a conoscere ciò che la tecnica che hai usato per aiutarmi a decidere tra le varie opzioni.

È stato utile?

Soluzione

Si rischia di trovare automapper molto utile: http://www.codeplex.com/AutoMapper

Modifica, in risposta al commento OP:

modelli T4 è incluso in Visual Studio per la generazione del codice. Ecco un post su generazione di codice entità-to-DTO con T4:

http://weblogs.asp.net/cibrax/archive/2009/03/11/code-generation-with-t4-an-entities-to-dto-example.aspx

Altri suggerimenti

Bene in una certa misura il .NET framework stesso può fare questo con le classi anonime.

Ad esempio con LINQ to Objects (oggetti di business, per esempio) è possibile "progetto" il risultato mette in (liste di classi anonime).

Il difetto principale di questo è in questo momento che non sarebbe molto portabile, ma con .NET 4.0 e classi dinamiche oso dire che non avrebbe bisogno di utilizzare una soluzione di terze parti, mi sa che ci si hanno gli strumenti con il framework stesso .

Io consiglio anche modelli T4 . È possibile utilizzare la riflessione per alimentare nei metadati e il modello attuale sembra simile a asp markup. Questo è integrato in VS.

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