小编xSh*_*ies的帖子

XMLSerialization:参数对象'Sw'的类型不是原始的

我正在尝试将对象序列化为XML文件,但我收到了上述错误.

问题似乎是包含基类列表的对象,但是由从基类派生的对象填充.

示例代码如下:

public class myObject
{
    public myObject()
    {
        this.list.Add(new Sw());
    }

    public List<Units> list = new List<Units>();
}

public class Units
{
    public Units()
    {
    }
}

public class Sw : Units
{
    public Sw();
    {
    }

    public void main()
    {
        myObject myObject = new myObject();
        XmlSerializer serializer = new XmlSerializer(typeof(myObject));
        TextWriter textWriter = new StreamWriter ("file.xml");
        serializer.Serialize (textWriter, myObject);
    }
Run Code Online (Sandbox Code Playgroud)

例如,一个对象只包含一个List<Units>由继承自Unitsclass(Sw)的派生对象填充的对象.

很抱歉没有提供我的实际代码,但涉及的对象非常复杂,这似乎是对象的唯一部分,它不会成功序列化 - 并且只有当列表包含派生类时.

我怎样才能正确序列化这样的类?

c# primitive xml-serialization derived-class

3
推荐指数
1
解决办法
3867
查看次数

标签 统计

c# ×1

derived-class ×1

primitive ×1

xml-serialization ×1