При использовании XML-сериализации в C# я использую такой код:
public MyObject LoadData()
{
XmlSerializer xmlSerializer = new XmlSerializer(typeof(MyObject));
using (TextReader reader = new StreamReader(settingsFileName))
{
return (MyObject)xmlSerializer.Deserialize(reader);
}
}
(и аналогичный код для десериализации).
Это требует кастинга и не очень приятно. Есть ли способ напрямую в .NET Framework использовать дженерики с сериализацией? То есть написать что-то вроде:
public MyObject LoadData()
{
// Generics here.
XmlSerializer<MyObject> xmlSerializer = new XmlSerializer();
using (TextReader reader = new StreamReader(settingsFileName))
{
// No casts nevermore.
return xmlSerializer.Deserialize(reader);
}
}
XmlSerializer
, как показано в приведенном выше примере, не существует. Вам нужно будет создать свою собственную оболочку, если вы хотите использовать эту функциональность. - person Steve Guidi   schedule 19.04.2010