Wcf RESTful服务返回xml而不使用xml架构

时间:2012-01-03 12:27:59

标签: 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 decimal height{ get; set; }
    [DataMember]
    public List<MyClass> parts { get; set; }
}

我想得到如下的xml:

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

但我明白了:

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

如何删除xmlns?

1 个答案:

答案 0 :(得分:0)

您可以通过在对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);

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