动态类型转换

时间:2009-07-15 10:06:08

标签: c# dynamic types

我有以下方法

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);

这是怎么做到的?要使类型转换从动态变量开始工作吗?

1 个答案:

答案 0 :(得分:2)

不,它将被序列化为适当的类型。

Serialize方法的参数类型为object,因此即使您 可以进行此演员,也不会有任何好处。它不像是一个可以使用编译时类型的通用方法。

如果您认为相关数据没有被保留,请发一个简短但完整的示例来说明这一点。它应该工作正常。