讓我報告,我已經能夠解決這個實施CustomJsonMediaTypeFormatter
:在GlobalConfiguration
public class EmberJsonMediaTypeFormatter : JsonMediaTypeFormatter
{
public override System.Threading.Tasks.Task<object> ReadFromStreamAsync(
Type type,
System.IO.Stream readStream,
System.Net.Http.HttpContent content,
IFormatterLogger formatterLogger)
{
return base.ReadFromStreamAsync(
typeof(JObject),
readStream,
content,
formatterLogger).ContinueWith<object>((task) =>
{
var data = task.Result as JObject;
var prefix= type.Name.ToLower();
if (data[prefix] == null)
{
return GetDefaultValueForType(type);
}
var serializer = JsonSerializer.Create(SerializerSettings);
return data[prefix].ToObject(type, serializer);
});
}
}
和更換默認JsonMediaTypeFormatter
。
我以類似的方式做了一次(https://gist.github.com/MilkyWayJoe/4422478),但恢復使用[WebAPIAdapter](https://github.com/MilkyWayJoe/Ember-Contact -Management-WebAPI/blob/master/Ember-Contact-Management-WebAPI/Scripts/app/webapi_adapter.js)&[Serializer](https://github.com/MilkyWayJoe/Ember-Contact-Management-WebAPI/blob/主/灰燼-聯繫人管理-的WebAPI /腳本/應用/ webapi_serializer.js)。他們需要一些工作,但使其變得更容易,因爲我不需要以任何方式更改後端API。 – MilkyWayJoe 2013-04-22 14:18:13
是的,這取決於你想要(甚至可以)彎曲的一面。 – Myslik 2013-04-22 15:59:51