我有一个输入XML,我想将其反序列化为一个派生自已知抽象基类的具体类。例如:
using System.IO;
using System.Xml.Serialization;
namespace SerializationTest
{
[XmlInclude(typeof(ConcreteFoo))]
public abstract class AbstractFoo
{
}
[XmlRoot("ConcreteFoo")]
public class ConcreteFoo : AbstractFoo
{
}
class Program
{
static void Main(string[] args)
{
var xml = "<ConcreteFoo />";
var serializer = new XmlSerializer(typeof(AbstractFoo));
using (var stream = new StringReader(xml))
{
var obj = serializer.Deserialize(stream);
}
}
}
}
序列化程序无法将ConcreteFoo
识别为AbstractFoo
的派生类,并提供以下异常:
InvalidOperationException:&lt; ConcreteFoo xmlns =''&gt;没想到。
给定的输入XML是固定的,并且是使用序列化中的具体类创建的。任何提示?