xmlInclude 是 .NET 中用于 XML 序列化的一个重要特性,XmlInclude 的主要作用是:
比如:
1.告知 XML 序列化器可能遇到的派生类型
2.解决多态类型的序列化和反序列化问题
3.允许基类序列化时包含派生类信息
当你有基类引用指向派生类对象时,如果不使用 XmlInclude,序列化器无法知道实际类型信息,导致序列化/反序列化失败。你会得到 InvalidOperationException,提示序列化器不知道如何处理派生类型。
InvalidOperationException: 不应是类型 ConsoleApp2.Circle。使用 XmlInclude 或 SoapInclude 特性静态指定非已知的类型。
关键点说明
1.必须为所有可能的派生类添加 XmlInclude:否则反序列化时会失败
2.适用于数组和集合:如示例中的 Shape[]
3. 与 [Serializable] 的区别:
[Serializ