【发布时间】:2012-09-20 18:13:16
【问题描述】:
有谁知道为什么在数据合同序列化期间命名空间仍被添加到根目录?
XML:
<Response xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Event>
<Address>
.
.
.
</Response>
代码:
[DataContract(Name = "Response", Namespace = "")]
public class ApiEventResponse
{
[DataMember(EmitDefaultValue = false)]
public ApiEvent Event { get; set; }
}
var serializer = new DataContractSerializer(type, "Response", "");
return Task.Factory.StartNew(() =>
{
using (var xmlw = new XmlTextWriter(writeStream, Encoding))
{
xmlw.Formatting = Formatting.Indented;
serializer.WriteObject(xmlw, value);
}
});
【问题讨论】:
-
请注意,这只是似乎没有使用的命名空间定义(至少在您粘贴的 xml 文档的部分中)。您的元素实际上位于空命名空间中。
-
如果我有一个 NULL 元素就是这种情况,它会添加 i:nill="true"
-
然后声明将被要求和使用(但不一定在根元素上)。
标签: .net xml namespaces xml-serialization datacontractserializer