MVC4 Web API默认JSON序列化程序

今天我偶然发现了一些事情。 以下是我的示例课程。

public class Employee
{
public string Name{get;set;}
Public Department Dept {get;set;}
public IList<Roles> Roles;
}

public Department{
public string Name{get;set;}
}

public Role {
public string Name{get;set;}
}


 sampleApiController : ApiContrller{
 public IEnumerable<string> Get(){
 return new List<string>{"Pavan", "Josyula"};
}
public Employee GetEmp(int id){

Employee e = new Employee();
e.Dept = "IT";
e.Name="Pav";
IList<Roles> r = new IListRoles();
r.Add(new Role{Name="Integrator"});
e.Roles = r;
return e;

  }
}

现在,当我从我的浏览器中调用GetEmp方法时,无论我的AcceptHeaders中的内容类型如何,它总是以JSON格式给出响应。 但是,当我调用Get方法时,它将返回XML格式的字符串集合,并且它会根据请求标头中的accept动词进行操作。 有些人可以告诉我为自定义类型默认的JSON行为的原因。


这是因为XmlSerializer无法序列化IList<T> 。 请阅读以下答案了解更多详情:

  • MVC中集合和单个值之间的内容协商差异4
  • 链接地址: http://www.djcxy.com/p/20395.html

    上一篇: MVC4 Web API Default JSON Serializer

    下一篇: Web Api and MVC Individual Account