新しいMicrosoft MVC 4 ApiController class and WebAPIを使用してRESTful Webサービスを構築しています。 私はPersonクラスがあります。ASP .NET MVC 4 WebAPIのシリアル化(XML/JSON)の内部オブジェクトの名前を変更
public class Person
{
public string surname { get; set; }
public string name{ get; set; }
}
をし、デフォルトのHTTP GETメソッドは次のように返し、動作します:
<Person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<surname>John</surname>
<name>Titor</name>
</Person>
私は今、私はデフォルトの内側のオブジェクトの名前を変更することができます注釈セットを必要とし、たとえば、surname
をmsurname
に変更したいとします。
[XmlElement("msurname")]
注釈を、私のリクエストのAccept
ヘッダは(もちろん)application/xml
が含まれている場合のみが動作する:私は、次を追加しようとしています。私は完全に無視される[DataMember]
注釈を試して使用しました。
WebAPIのこのApiControllerで、XML形式とJSON形式の両方にシリアル化するアノテーションセットがありますか?ありがとうございました。
EDIT:補正私は[DataMember]
と[DataContract]
アノテーションを使用している場合、私はなく、XMLと、JSONのシリアライズを用いて所望の動作を得ます。私が[XmlElement]
を使用すると、逆のことが起こります。
偉大な、ありがとう! 'Global.asax.cs Application_Start'に以下の行を入れました。(あなたが提案したものと少し異なります):' GlobalConfiguration.Configuration.Formatters.XmlFormatter.UseDataContractSerializer = true; ' – frapontillo
ところで、将来のデフォルトの動作ですか? JSONはXmlSerializerと同じスーパークラスのシリアライザを使用しますか? – frapontillo
@MacGyverいいえ。デフォルトのJSONシリアライザをJSON.Netに置き換えることを考えています。ただし、必要なものだけを使用するように、Formattersコレクションをいつでも変更できます。 –