40 messaggi dal 13 novembre 2009
Salve,
ho un problema. Ho due classi, entityset di un Db; a tali classi sono legate rispettivamente 3 classi figlie. tutte le classi sono identiche.
Es.
Padre1.ProprietàStessoNome1
Padre1.Figlio1.ProprietàFiglio1StessoNome1
Padre1.Figlio2.ProprietàFiglio2StessoNome1

Padre2.ProprietàStessoNome1
Padre2.Figlio1.ProprietàFiglio1StessoNome1
Padre2.Figlio2.ProprietàFiglio2StessoNome1

Poi ho una terzaclasse che ha:
ClasseNew.ProprietàStessoNome
ClasseNew.ProprietàFiglio1StessoNome
ClasseNew.ProprietàFiglio2StessoNome
cioè contiene tutti i campi/proprietà delle tabelle padre/figlio con stesso nome.
Come creo questa classe istanziandola con i valori che derivano o dalla Padre1 + i figli o dal Padre2 + i figli?
Ho pensato:

public ClasseNew(object source)
{
var props = source.GetType().GetProperties();

foreach (var prop in props)
{
PropertyInfo info = this.GetType().GetProperty(prop.Name);
if (info != null)
{
info.SetValue(this, prop.GetValue(source, null), null);
}
}
}
Ma così mi fa solo il padre in teoria? Ed i figli? Cioè:
ClassNew.ProprietàFiglio1StessoNome=Padre1.Figlio1.ProprietàFiglio1StessoNome
ClassNew.ProprietàFiglio2StessoNome=Padre1.Figlio2.ProprietàFiglio2StessoNome

grazie
Sei sulla strada giusta. Dovresti però guardare il PropertyType. Se è un tipo complesso (!IsPrimitive o non è String) allora entra al suo interno e naviga nelle proprietà di tale oggetto.
Fai un funzione ricorsiva al quali passi l'oggetto da copiare e nel quale eventualmente entrare a sua volta.

Ciao

Il mio blog
Homepage

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.
In primo piano

I più letti di oggi

Media
In evidenza
MISC