Quando si utilizza la serializzazione XML in C#, io uso il codice come questo:Utilizzo di farmaci generici con XmlSerializer
public MyObject LoadData()
{
XmlSerializer xmlSerializer = new XmlSerializer(typeof(MyObject));
using (TextReader reader = new StreamReader(settingsFileName))
{
return (MyObject)xmlSerializer.Deserialize(reader);
}
}
(e il codice simile per deserializzazione).
Richiede il casting e non è proprio bello. C'è un modo, direttamente in .NET Framework, di usare i generici con la serializzazione? Vale a dire a scrivere qualcosa del tipo:
public MyObject LoadData()
{
// Generics here.
XmlSerializer<MyObject> xmlSerializer = new XmlSerializer();
using (TextReader reader = new StreamReader(settingsFileName))
{
// No casts nevermore.
return xmlSerializer.Deserialize(reader);
}
}
Un generico 'XmlSerializer' come mostrato nel tuo esempio sopra non esiste. Sarà necessario creare il proprio wrapper se si desidera questa funzionalità. –