hereとhere「/」は有効なxml文字です。
だから、私は以下のコントローラ/モデルWebAPI Xml要素名にスラッシュ( "/")を使用したシリアライズ
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; }
}
}
上記GETアクションは、以下の(XML)
<MyName xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Part1_x002F_Part2>
<Property1>222</Property1>
</Header_x002F_Footer>
</MyName>
私は何とか "パート1 /パート2" の代わりに "Part1_x002F_Part2" を取得することはできますが返されますがありますか?
オブジェクトをJSONとして要求した場合、期待通りに動作します。
最後の段落を除いて妥当な答えです。名前の先頭にあるコロンの制限は、ほとんどのパーサーが準拠するように選択したXML名前空間の仕様に現れます。私が知っている他の文字には、仕様や特定の実装において、同様の制限はありません。 –
@MichaelKay:XML仕様には誤って解釈された段落が実際に含まれています。 * start *文字にコロンを含めるのはまだ意味がありませんが、ちょっと。私は段落を削除しました。無関係なものではありません。 –
私はちょうどこれを言う必要があります:@ジョージ、私はこれをすべての朝に言っているが、あなたはそれが好きではなかった:) – Ares