I here und here lesen, daß '/' ein gültiges XML-Zeichen ist. So
, ich habe folgende Controller/ModelleWebAPI XML-Serialisierung mit Schrägstrich ("/") in Elementnamen
using System.Runtime.Serialization;
using System.Web.Http;
namespace WebApplication1.Controllers
{
public class ValuesController : ApiController
{
public Parent Get()
{
return new Parent() { Child = new Child() { Property1 = "222" } };
}
}
[DataContract(Name = "MyName", Namespace = "")]
public class Parent
{
[DataMember(Name = "Header/Footer", EmitDefaultValue = true)]
public Child Child { get; set; }
}
[DataContract(Name = "MyName", Namespace = "")]
public class Child
{
[DataMember(Name = "Property1", EmitDefaultValue = true)]
public string Property1 { get; set; }
}
}
Die oben GET Aktionen gibt die folgende (xml)
<MyName xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Part1_x002F_Part2>
<Property1>222</Property1>
</Header_x002F_Footer>
</MyName>
Kann ich irgendwie "Teil1/Teil2" statt "Part1_x002F_Part2" bekommen?
Wenn ich das Objekt als JSON fordern, funktioniert es wie erwartet
Gute Antwort mit Ausnahme des letzten Absatzes. Die Einschränkung für den Doppelpunkt am Anfang des Namens wird in der XML-Namespaces-Spezifikation angezeigt, der die meisten Parser entsprechen. Es gibt keine ähnlichen Einschränkungen für andere Zeichen, die mir bekannt sind, entweder in den Spezifikationen oder in bestimmten Implementierungen. –
@MichaelKay: die XML-Spezifikation enthält tatsächlich einen Absatz über das, was ich falsch interpretiert habe - der Wortlaut ist leicht irreführend. Es macht immer noch keinen Sinn, den Doppelpunkt in das Zeichen * start * einzufügen, aber hey. Ich habe meinen Absatz entfernt, da es nicht mehr als eine Nebensache ist. –
Ich muss nur sagen: @George, ich habe das alles Morgen gesagt, aber sie hat es nicht gefallen :) – Ares