2012-01-03 2 views
1

Вот мой код:ФОС RESTful службы возвращения XML без XML-схемы

[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?

ответ

0

Вы должны сделать это, указав пространство имен XML в своих вызовах Serialize().

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

Этот код только для справки, и я бы не использовать это в производстве, но он показывает, как вы можете определить собственное пространство имен (или вообще). Надеюсь это поможет!

Смежные вопросы