> 技术文档 > 4.1.2 XmlInclude 在 C# 中的作用及示例

4.1.2 XmlInclude 在 C# 中的作用及示例

xmlInclude 是 .NET 中用于 XML 序列化的一个重要特性,XmlInclude的主要作用是:
1.告知 XML 序列化器可能遇到的派生类
2.解决多态类型的序列化和反序列化问题
3.允许基类序列化时包含派生类信息
当你有基类引用指向派生类对象时,如果不使用XmlInclude,序列化器无法知道实际类型信息,导致序列化/反序列化失败。你会得到InvalidOperationException,提示序列化器不知道如何处理派生类型。
比如:

InvalidOperationException: 不应是类型 ConsoleApp2.Circle。使用 XmlInclude 或 SoapInclude 特性静态指定非已知的类型。


关键点说明
1.必须为所有可能的派生类添加XmlInclude:否则反序列化时会失败
2.适用于数组和集合:如示例中的Shape[]
3. 与[Serializable]的区别:
[Serializ