IXmlSerializable
인터페이스를 사용하여 단일 추상 수퍼 클래스 WorldObject
에서 파생 된 일련의 하위 클래스를 XML로 직렬화하려고합니다. 내가 deserializing로 클래스를 일부 이벤트에 가입하고자하는 것처럼,이 인터페이스를 사용해야합니다.IXmlSerializable 추상 클래스 생성 예외
[XmlInclude(typeof(SubType1))
,XmlInclude(typeof(SubType2))] // etc, includes all subtypes
public abstract class WorldObject : IComparable, IXmlSerializable
public void WriteXml(System.Xml.XmlWriter writer)
{
Type[] extraTypes = new Type[8];
// (...) adding types to array here
var worldObjectSerializer = new XmlSerializer(typeof(List<WorldObject>), extraTypes);
}
초기화됩니다 XmlSerializer
는 런타임 오류가 발생합니다 마지막 행 : System.MissingMethodException을 :
this 대답을 사용하여, 나는 다음과 같은 코드를 내놓았다 추상 클래스를 만들 수 없습니다 'Namespace.WorldObject' . typeof(List<WorldObject>)
대신 typeof(WorldObject)
을 사용하려고하면 같은 오류가 발생합니다.
here으로 표시된 모든 클래스에서 XMLRoot를 동일한 값으로 설정하려고 시도했지만 오류가 지속됩니다.