我想将一个对象序列化为包含其他自定义类的 xml。据我了解(我一直在阅读 MSDN 和 SO),XmlSerializer
并没有考虑到这一点。
这是让我感到困惑的一行:
XML 序列化仅将对象的公共字段和属性值序列化为 XML 流。XML 序列化不包括类型信息。例如,如果您有一个 Book 对象存在于 Library 命名空间中,则无法保证它将被反序列化为相同类型的对象。
取自 MSDN,这里
例如,我想序列化一个类型的对象Order
,但它包含一个列表Products
,并且每个都包含一个类型的对象Category
:
class Order
{
List<Product> products;
}
class Product
{
Category type;
}
class Category
{
string name;
string description;
}
我希望我的Order
对象像这样被序列化:
<Order>
<Product>
<Category Name="">
<Description></Description>
</Category>
</Product>
<Product>
<Category Name="">
<Description></Description>
</Category>
</Product>
<Order>
XmlSerializer
已经这样做了吗?如果没有,是否有另一个类可以或我必须自己定义序列化过程?