【发布时间】:2011-02-09 20:08:32
【问题描述】:
在 C# 中使用 XML 序列化时,我使用如下代码:
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。如果您需要此功能,则需要创建自己的包装器。 -
死灵术,但我不得不回应上面的评论:当然它不存在,这就是问这个问题的原因。如果存在,该示例将按原样运行。
标签: c# generics oop xml-serialization xmlserializer