作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将对象序列化为 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);
}
例如仅包含 List<Units>
的对象它由继承自 Units
的派生对象填充类(Sw
)。
很抱歉没有提供我的实际代码,但是所涉及的对象非常复杂,这似乎是对象中唯一无法成功序列化的部分——而且只有当列表包含派生类时。
如何正确序列化这样的类?
最佳答案
用 XmlInclude
属性标记 Units
类,将派生类作为参数传递:
[XmlInclude(typeof(Sw))]
public class Units
{
public Units()
{
}
}
关于c# - XML 序列化 : The type of the argument object 'Sw' is not primitive,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20917831/
我是一名优秀的程序员,十分优秀!