我有以下方法
public static void SerializeToXMLFile(Object obj,Type type, string fileName)
{
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("", "");
XmlSerializer serializer = new XmlSerializer(type);
TextWriter tw = new StreamWriter(fileName);
serializer.Serialize(tw, obj, ns);
tw.Close();
}
问题是代码行中的注意事项obj将被序列化为对象。
serializer.Serialize(tw,obj,ns);
我更喜欢的是它被列为相关类型,例如:
serializer.Serialize(tw,(type)obj,ns);
这是怎么做到的?要使类型转换从动态变量开始工作吗?
答案 0 :(得分:2)
不,它将被序列化为适当的类型。
Serialize
方法的参数类型为object
,因此即使您 可以进行此演员,也不会有任何好处。它不像是一个可以使用编译时类型的通用方法。
如果您认为相关数据没有被保留,请发一个简短但完整的示例来说明这一点。它应该工作正常。