我有一个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输出。