【发布时间】:2010-03-01 08:17:00
【问题描述】:
我有 2 节课:
公开课ClassA
公共类 ClassB(来自另一个命名空间):ClassA
我在ClassA使用方法
public static ClassA Deserialize(string path)
{
ClassA classA;
//classA=code...
return classA;
}
我在 B 类调用这个方法
public void DoSomething()
{
ClassB classB=(ClassB)ClassA.Deserialize("c:\directory\file.xml);
}
方法反序列化有效,但我收到无法将 ClassA 转换为 ClassB 的错误。
如何处理?
public static ClassA DeserializeFromXml(string path)
{
XmlSerializer s = new XmlSerializer(typeof(ClassA));
ClaasA h;
TextReader r = new StreamReader(path);
h = (ClassA)s.Deserialize(r);
r.Close();
return h;
}
也许是反序列化(字符串路径,类型 objectType)?
如果需要,我可以更改方法反序列化
【问题讨论】:
-
请在 Deserialize() 中提供代码 如果您使用 classA 构造函数创建 ClassA 对象的实例,您肯定会在运行时出错
-
idea with string path, Type objectType 不对?
标签: c# casting polymorphism