我正在用新的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格式的序列化?謝謝。
編輯:修正,如果我用[DataMember]
和[DataContract]
註釋,我得到JSON序列化所需的行爲,但不與XML。如果我使用[XmlElement]
,會發生相反的情況。
太好了,謝謝!我已經在我的'Global.asax.cs Application_Start'中放入了下面一行(與你所建議的不同):'GlobalConfiguration.Configuration.Formatters.XmlFormatter.UseDataContractSerializer = true;' – frapontillo 2012-03-12 12:44:17
順便說一下,未來的默認行爲? JSON會使用與XmlSerializer具有相同超類的序列化程序嗎? – frapontillo 2012-03-12 12:54:24
@MacGyver號他們正在尋找用JSON.Net替換默認的JSON序列化程序。但是,您始終可以將Formatters集合更改爲僅使用所需的集合。 – 2012-03-12 14:00:45