我完全不知道可能导致这种情况的原因。
我有一个 ASP.Net MVC 4 RC 应用程序和一组 Web API 控制器。我正在尝试返回一个包含 IList 中的一组子对象的对象。每当我请求该对象时,我都会在浏览器上返回 500 错误,而调试器中没有抛出明显的异常。我尝试在 global.asax 中放置一个 Application_Error 处理程序,也没有发现任何错误。
无论 List 是实际的数据库关系还是只是硬编码的字符串列表都没有关系,无论哪种情况,请求都会失败。如果我将列表设置为空,则请求成功。
如果我删除列表,则请求成功,并且我得到对象的 XML(或 JSON)表示。
我也试过这条线 -
GlobalConfiguration.Configuration.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;
捕获实际的异常并且仍然没有得到任何回报。
这是当前对象
public class Authority : IEntity
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual string Address1 { get; set; }
public virtual string Address2 { get; set; }
public virtual string City { get; set; }
public virtual string County { get; set; }
public virtual string State { get; set; }
public virtual string ContactPostalCode { get; set; }
//public virtual IList<PostalCode> PostalCodes { get; set; }
public virtual IList<string> RandomTrash { get; set; }
public VPA()
{
//PostalCodes = new List<PostalCode>();
RandomTrash = new List<string> {"foo"};
}
}
注意注释掉的 PostalCodes 集合——这是一个真正的多对多数据库关系。我将其注释掉并用虚拟的“RandomTrash”集合替换它,失败似乎是一样的。
我觉得这是一个序列化失败,但我不知道如何避免它。如果有帮助,我将使用 NHibernate 作为 ORM。
有人见过这个吗?