【问题标题】:The 'ObjectContent`1' type failed to serialize the response body for content type in WebAPI [duplicate]“ObjectContent`1”类型无法序列化 WebAPI 中内容类型的响应正文 [重复]
【发布时间】:2015-01-26 20:49:16
【问题描述】:

我有一个 MVC5 应用程序,其中包含 WebAPI。我测试了它,它适用于简单的字符串和东西。然后我尝试做这样的事情:

public Business Get(string id)
{
     return db.Businesses.Where(b => b.Id == id).FirstOrDefault();
}

我得到了上述错误。请注意,Business 是我在模型文件夹中创建的自定义类型。在我的WebApiConfig 文件中,我有这样的内容:

var formatter = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
formatter.SerializerSettings.ContractResolver = new Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver();
formatter.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;

知道如何解决这个问题吗?

编辑:

更多错误信息:

键入“System.Data.Entity.DynamicProxies.Business_32C47B90BA261D075748CEC009DA52F8C6D893134F8D33848A7F856F76F50D55” 带有数据合同名称 '业务_32C47B90BA261D075748CEC009DA52F8C6D893134F8D33848A7F856F76F50D55:http://schemas.datacontract.org/2004/07/System.Data.Entity.DynamicProxies' 预计不会。如果您是,请考虑使用 DataContractResolver 使用 DataContractSerializer 或添加任何静态未知的类型 已知类型的列表 - 例如,通过使用 KnownTypeAttribute 属性或通过将它们添加到传递给 serializer.System.Runtime.Serialization.SerializationException

【问题讨论】:

  • 异常信息不够。异常的内容是否详细说明了失败的原因?
  • @YuvalItzchakov 我添加了更多文本。
  • 如果你通过 WebAPI 发送一些东西,它需要是可序列化的。
  • this。我认为它应该回答你的问题。

标签: c# asp.net-mvc asp.net-web-api


【解决方案1】:

我找到了解决方案。我只需要包含这行代码:

DbContext.Configuration.ProxyCreationEnabled = false;

【讨论】:

    猜你喜欢
    • 2017-07-17
    • 1970-01-01
    • 2013-10-01
    • 2012-10-07
    • 2017-12-13
    • 2015-06-27
    • 2013-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多