public interface IMyInterface
{
[XmlElement(Type=typeof(App.Projekt), ElementName="Projekt")]
[XmlElement(Type=typeof(App.Person), ElementName="Person")]
[XmlElement(Type=typeof(App.Task), ElementName="Task")]
IMyInterface parent
{
get;
set;
}
}
编辑:我用这个代码测试了这个问题。没用。我想,xmlement将与“object”类型的属性执行相同的操作。
public interface IMyInterface
{
IMyInterface Parent { get; set; }
string Name { get; set; }
}
public class ClassA : IMyInterface
{
[XmlElement(Type = typeof(ClassA), ElementName = "ClassA")]
[XmlElement(Type = typeof(ClassB), ElementName = "ClassB")]
[XmlElement(Type = typeof(ClassC), ElementName = "ClassC")]
public IMyInterface Parent { get; set; }
public string Name { get; set; }
public string AProperty { get; set; }
}
public class ClassB : IMyInterface
{
[XmlElement(Type = typeof(ClassA), ElementName = "ClassA")]
[XmlElement(Type = typeof(ClassB), ElementName = "ClassB")]
[XmlElement(Type = typeof(ClassC), ElementName = "ClassC")]
public IMyInterface Parent { get; set; }
public string Name { get; set; }
public string BProperty { get; set; }
}
public class ClassC : IMyInterface
{
[XmlElement(Type = typeof(ClassA), ElementName = "ClassA")]
[XmlElement(Type = typeof(ClassB), ElementName = "ClassB")]
[XmlElement(Type = typeof(ClassC), ElementName = "ClassC")]
public IMyInterface Parent { get; set; }
public string Name { get; set; }
public string CProperty { get; set; }
}
“无法序列化成员
TestXMLSerializer.ClassA.Parent属于
类型TestXMLSerializer.IMyInterface
因为它是一个接口。”