gpt4 book ai didi

.net - 命名空间未通过 DataContractSerializer 从 XML 根中删除

转载 作者:行者123 更新时间:2023-12-04 16:55:00 25 4
gpt4 key购买 nike

有谁知道为什么在 datacontractserialization 期间命名空间仍然被添加到根?

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);
}
});

最佳答案

无论使用什么数据协定或实际命名空间,似乎都会发出 XMLSchema-instance 命名空间。 XMLSchema-instance 命名空间前缀实际上并未在您的示例中使用,它只是声明了。

序列化程序可能只是始终发出该命名空间,以防它以后发现在序列化数据时需要引用 XMLSchema 的情况。

关于.net - 命名空间未通过 DataContractSerializer 从 XML 根中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12647135/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com