use*_*618 0 c# polymorphism casting
我有2个班:
公共课ClassA
公共类ClassB(来自另一个名称空间):ClassA
我在ClassA使用方法
public static ClassA Deserialize(string path)
{
ClassA classA;
//classA=code...
return classA;
}
Run Code Online (Sandbox Code Playgroud)
我在classB调用这个方法
public void DoSomething()
{
ClassB classB=(ClassB)ClassA.Deserialize("c:\directory\file.xml);
}
Run Code Online (Sandbox Code Playgroud)
方法反序列化工作,但我得到错误,勇士将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;
}
Run Code Online (Sandbox Code Playgroud)
也许有反序列化的东西(字符串路径,类型objectType)??
如果有必要,我可以更改方法反序列化