Jan*_*oom 6 c# xml-serialization
我希望我的输出看起来像这样
<OrderContainer xmlns="http://blabla/api/products" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
Run Code Online (Sandbox Code Playgroud)
所以我将以下内容添加到我的XmlSerializer中
XmlSerializer x = new XmlSerializer(typeof(OrderContainer));
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("", "http://blabla/api/products");
ns.Add("i", "http://www.w3.org/2001/XMLSchema-instance");
// do stuff..
x.Serialize(stream, orderContainer, ns);
Run Code Online (Sandbox Code Playgroud)
但现在我明白了
<OrderContainer xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
Run Code Online (Sandbox Code Playgroud)
那么我该如何编辑默认命名空间呢?
我的对象定义如下:
[System.Runtime.Serialization.DataContractAttribute(Name="OrderContainer", Namespace="http://blabla/api/products")]
[System.SerializableAttribute()]
public partial class OrderContainer
Run Code Online (Sandbox Code Playgroud)
Dar*_*rov 10
除了要序列化的类型之外,您还可以使用XmlSerializer构造函数,该构造函数采用默认名称空间:
var x = new XmlSerializer(
typeof(OrderContainer),
"http://blabla/api/products");
var ns = new XmlSerializerNamespaces();
ns.Add("i", "http://www.w3.org/2001/XMLSchema-instance");
x.Serialize(stream, orderContainer, ns);
Run Code Online (Sandbox Code Playgroud)