C# Wcf RESTful服务返回不带xml模式的xml

C# Wcf RESTful服务返回不带xml模式的xml,c#,xml-serialization,C#,Xml Serialization,这是我的密码: [DataContract(Name = "ThisPlan")] public class ThisPlanTemplate { [DataMember (Name = "length", Order = 1), XmlAttribute] public decimal length { get; set; } [DataMember (Name = "height", Order = 2), XmlAttribute] public decim

这是我的密码:

[DataContract(Name = "ThisPlan")]
public class ThisPlanTemplate
{
    [DataMember (Name = "length", Order = 1), XmlAttribute]
    public decimal length { get; set; }
    [DataMember (Name = "height", Order = 2), XmlAttribute]
    public decimal height{ get; set; }
    [DataMember]
    public List<MyClass> parts { get; set; }
}
[DataContract(Name=“ThisPlan”)]
公共类植物模板
{
[DataMember(Name=“length”,Order=1),XmlAttribute]
公共十进制长度{get;set;}
[DataMember(Name=“height”,Order=2),XmlAttribute]
公共十进制高度{get;set;}
[数据成员]
公共列表部分{get;set;}
}
我希望获得如下所示的xml:

<ThisPlan>
    <sections/>
    <length>100.00</length>
    <height>100.00</height>
</ThisPlan>

100
100
但我明白了:

 <ThisPlan xmlns="some url">
    <sections xmlns:a="some url" i:nil="true"/>
    <length>100.00</length>
    <height>100.00</height>
</ThisPlan>

100
100

以及如何删除xmlns?

您可以通过在对Serialize()的调用中指定XML名称空间来实现这一点

这段代码仅供参考,我不会在生产中使用,但它展示了如何指定自己的名称空间(或者根本不指定名称空间)。希望这有帮助

var serializer = new XmlSerializer(typeof(myObject));
var myNamespace = new XmlSerializerNamespaces();
var myFile = File.Open(mypath, FileMode.OpenOrCreate);
myNamespace.Add("", "");
serializer.Serialize(myFile, myObject, myNamespace);