XmlSerializer在序列化

时间:2015-06-02 23:36:20

标签: c# xml serialization xml-namespaces xmlserializer

我有一个Serialize函数,它序列化一个实体(客户对象)。 XmlSerializer是使用

创建的
          new XmlSerializer(entity.GetType())

我有两个调用此函数的测试用例。第一次测试得到一个客户列表,并发送一个活跃的客户进行序列化,效果很好。创建的XML输出仅在根元素(即客户元素/标记)

中具有命名空间

示例:

<Customer xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" domain="XXX" 
sparse="false" xmlns="http://schema.xxx.com/finance/v3">
   <Id>1099</Id>...

第二个测试调用Customer查询服务,并使用LinqExtender查询查询服务的结果并返回活动客户。当第二个测试调用serialize方法时,它会导致XML输出将命名空间添加到所有元素,而不是仅将其用于根元素。

示例:

<Customer xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" domain="XXX" 
sparse="false">
    <Id xmlns="http://schema.xxx.com/finance/v3">1099</Id>...

我比较了第一次和第二次测试使用的两个对象,它们是相同的。

我希望序列化程序在这种情况下始终如一地执行,这将仅在根元素中创建名称空间的XML输出。

0 个答案:

没有答案