C# XmlSerializerFormat的命名空间问题
我正在尝试使用XMLSerializerFormat和WCF设置名称空间。但我似乎无法使名称空间显示在对象的根上。如果我使用基本的xmlserializer,而不是通过有线传输,那么它看起来很好 下面是使用基本xmlserializer时的情况C# XmlSerializerFormat的命名空间问题,c#,xml,wcf,namespaces,C#,Xml,Wcf,Namespaces,我正在尝试使用XMLSerializerFormat和WCF设置名称空间。但我似乎无法使名称空间显示在对象的根上。如果我使用基本的xmlserializer,而不是通过有线传输,那么它看起来很好 下面是使用基本xmlserializer时的情况 <?xml version="1.0" encoding="utf-16"?> <bar:SomeObjects xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:x
<?xml version="1.0" encoding="utf-16"?> <bar:SomeObjects xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:bar="http://www.bar.com/"> <bar:Name>FooBar</bar:Name> <Foo:SomeObject xmlns:Foo="http://www.Foo.com/">
<Foo:FirstName>Foo</Foo:FirstName>
<Foo:LastName>Bar</Foo:LastName> </Foo:SomeObject> <Foo:SomeObject xmlns:Foo="http://www.Foo.com/">
<Foo:FirstName>Bar</Foo:FirstName>
<Foo:LastName>Foo</Foo:LastName> </Foo:SomeObject> </bar:SomeObjects>
尝试将XmlRoot属性添加到类中,如下所示:
[System.Xml.Serialization.XmlRootAttribute("SomeObjects", Namespace = "http://www.bar.com/")]
public partial class SomeObjects
{
...
要在XML文档中添加带前缀的命名空间,请创建包含所有前缀命名空间对的XmlSerializerNamespaces对象。为每个XmlArrayAttribute设置的命名空间必须包含在XmlSerializerNamespaces对象中。当XmlSerializer生成文档时,它会正确地为每个数组项添加元素名前缀
这似乎没有给出我想要的结果。我编辑了这个问题,以显示我将部分类更改为什么。
[XmlRootAttribute("SomeObjects", Namespace = "http://www.bar.com/")]
public partial class SomeObjects
{
public SomeObjects()
{
xmlsnField = new XmlSerializerNamespaces();
this.xmlsnField.Add("bar", "http://www.bar.com/");
this.xmlsnField.Add("foo", "http://www.foo.com/");
}
}
[System.Xml.Serialization.XmlRootAttribute("SomeObjects", Namespace = "http://www.bar.com/")]
public partial class SomeObjects
{
...