विकल्प 1 - बनाएं नया मॉडल
के बजाय लौटने
public IEnumerable<Person> Get()
वापसी
public People Get()
जहां
public class People {
public IEnumerable<Person> People {get; set;}
}
विकल्प 2 - वापसी गतिशील
इसके बजाय
public IEnumerable<Person> Get()
लौटने वापसी
public dynamic Get() {
IEnumerable<Person> p = //initialize to something;
return new {people = p};
}
विकल्प 3 की - संशोधित JsonMediaTypeFormatter
तुम अब भी लौट सकते हैं
public IEnumerable<Person> Get()
लेकिन निम्न वर्ग जोड़ें:
public class PeopleAwareJsonMediaTypeFormatter : JsonMediaTypeFormatter
{
public override System.Threading.Tasks.Task WriteToStreamAsync(Type type, object value, System.IO.Stream writeStream, HttpContent content, TransportContext transportContext)
{
if ((typeof (IEnumerable<People>).IsAssignableFrom(type)))
{
value = new {people = value};
}
return base.WriteToStreamAsync(type, value, writeStream, content, transportContext);
}
}
अब में WebApiConfig सिर्फ नए फ़ॉर्मेटर रजिस्टर वर्ष JSON एक के बजाय:
config.Formatters.RemoveAt(0);
config.Formatters.Insert(0, new PeopleAwareMediaTypeFormatter());
स्रोत
2013-01-22 04:40:01