3
我对使用泛型的成员的XML序列化遇到问题。以下是我基本的阶级结构是什么样子(我要使用默认的XML序列化,而不是在每一个类重载IXmlSerializable的):使用泛型的抽象类的成员的XML序列化
public class MyClassToSerialize
{
public Problem<int> Problem;
}
public class MyOtherClassToSerialize
{
public Problem<string> Problem;
}
public abstract class Problem<T>
{
}
public class ProblemImplementationOne<T> : Problem<T>
{
}
public class ProblemImplementationTwo<T> : Problem<T>
{
}
现在,这里是我的尝试:
[XmlInclude(typeof(ProblemImplementationOne<T>))]
[XmlInclude(typeof(ProblemImplementationTwo<T>))]
public abstract class Problem<T>
{
}
这不起作用:它在属性中使用的<T>
参数上出现编译错误。下面的(显然)不工作为好,因为它不序列化提供足够的信息:
[XmlInclude(typeof(ProblemImplementationOne<>))]
[XmlInclude(typeof(ProblemImplementationTwo<>))]
public abstract class Problem<T>
{
}
这在序列化提供了错误:“泛型类型定义不能系列化只能使用特定的通用类型可以使用。“
有没有人知道这个问题的简单解决方案?