让我报告,我已经能够解决这个实施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