c# - 继承 XmlSerializer C#

标签 c# inheritance xmlserializer

<分区>

我有这 3 个类:

Class Image : Asset
Class Sound : Asset
Class Video : Asset

一切都可以序列化,但是当我创建这个项目时:

Class Master
List<Asset> assets //property

例如这个类的一个实例:

Image i = new Image();
Sound s = new Sound();
Video v = new Video();
Master m =  new Master( new List<Asset>{i,s,v} )

它不会异常序列化 “InvalidOperationException - 生成 XML 文档时出错” 并在 innerException 中:{“MyApplication.Video 类型不是预期的。使用 XmlInclude 或 SoapInclude 属性指定静态未知的类型。”

.. 有什么想法吗??

最佳答案

Asset 类上添加 XmlInclude 属性:

[XmlInclude(typeof(Video))]
[XmlInclude(typeof(Sound))]
[XmlInclude(typeof(Image))]
public class Asset
{
    ...
}

关于c# - 继承 XmlSerializer C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15159931/

相关文章:

c# - 如何比较两个数据表并更新数据表中给出结果数据表的不匹配行?

c# - System.Exception 是否有内置的抛出时间戳?

c# - 给新手关于 N 层应用程序的建议

c++ - 这种继承结构是否存在切片问题?

java - Android:为什么我不能从 View 中覆盖 setFrame?

javascript - 这个例子可以被认为是javascript中的多重继承吗?

c# - XML反序列化不在数组容器中的数组

c# - 使用 XmlSerializer 反序列化 xml 文件时出错

c# - 为什么可以在 DataContext 上调用 Dispose() 后枚举 DbLinq 查询?

c# - 如何使用 XmlSerializer 在大型文档中插入节点