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>
{
}
這在序列化提供了錯誤:「泛型類型定義不能系列化只能使用特定的通用類型可以使用。「
有沒有人知道這個問題的簡單解決方案?