72 messaggi dal 18 gennaio 2007
Buongiorno,
in un'applicazione uso pesantemente la serializzazione e deserializzazione XML per fare delle richieste ad un provider di servizi.
Sia per le richieste che per le risposte esiste una parte fissa ed una relativa al particolare argomento.
Uso quindi, come campo della classe, esempio, TRequest, una classe TRequestDetail e, specularmente, una classe TResponseDetail nella TResponse.
Sia da TRequestDetail che da TResponseDetail derivo poi le classi particolari.
Ovvero:
public class TResponseDetail
{
[XmlIgnore]
public int dummy;
}

public class TResponseDetailOper1 : TResponseDetail
{
[Xml...("...")]
public XXX Campo1;

[Xml...("...")]
public XXX Campo2;

...
}

public class TResponse
{
[Xml...("...")]
public XXX CampoFisso1;

[Xml...("...")]
public XXX CampoFisso2;

public TResponseDetail Detail;
}
Ora, ho messo tutte le azioni di HTTP I/O in una classe con una funzione mandaEricevi<T,Q>(string xmlRequest) where T : TRequest K : TResponse.
Fin qui tutto benissimo.
Mi piacerebbe moltissimo inoltrarmi maggiormente nella tecnologia reflection andando ricorsivamente a recuperare un certo campo annidato
in una classe di una classe di una classe della TResponseDetail (campo di classe che è campo di classe che è campo di classe della TResponseDetail).
Non posso semplificare l'annidamento delle classi per rispettare l'XML risultante dalla serializzazione (XML riconosciuto per la richiesta e presente nella risposta).

Mi piacerebbe poter scorrere con strumenti di reflection le varie classi annidate e recuperare il valore del campo (una List<TXxxx>) per restituirlo al chiamante.
Ho impiegato tutta la giornata di ieri (25/3/2014) per cercare su MSDN e tentare ma non vi sono riuscito.
Riesco a trovare tutti i tipi annidati oppure recuperare i field (con i loro valori) della sola struttura principale.
Praticamente ho bisogno di una <mahInfo> info = <oggetto>.GetNestedField("NomeCampo") + info.GetValue();
Se avete delle idee vi ringrazio moltissimo.
D.R.
72 messaggi dal 18 gennaio 2007
Trovato ottimo hint su stack overflow.
Per tutti quelli che incappassero nello stesso problema: "http://stackoverflow.com/questions/14282579/getting-field-values-in-multiple-levels-of-subclasses-with-reflection"
Grazie e...vabbe'...
D.R.

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.