[英]Self referencing loop detected for property in Web Application
我正在尝试将移动服务应用程序移植到Web应用程序。 为此,我创建了一个新的Web应用程序,并将相关的代码从正常工作的移动服务复制到了我创建的新Web应用程序(使用移动应用程序模板)。
在新应用程序的Startup方法中,我有以下代码:
public partial class Startup
{
public static void ConfigureMobileApp(IAppBuilder app)
{
HttpConfiguration config = new HttpConfiguration();
new MobileAppConfiguration()
.UseDefaultConfiguration()
.ApplyTo(config);
// Use Entity Framework Code First to create database tables based on your DbContext
Database.SetInitializer(new MobileServiceInitializer());
config.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;
config.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Serialize;
config.Formatters.JsonFormatter.SerializerSettings.PreserveReferencesHandling = Newtonsoft.Json.PreserveReferencesHandling.Objects;
app.UseWebApi(config);
MobileAppSettingsDictionary settings = config.GetMobileAppSettingsProvider().GetMobileAppSettings();
}
}
config.Formatters是从原始应用程序复制的,该应用程序将实体及其子级返回到api控制器的json输出。
在新的应用程序中,我必须将[MobileAppController]添加到我的api控制器中。 我从Web应用程序应用程序的控制器中收到以下错误:为属性Teams检测到自引用循环(模型具有Teams-> Players,并且玩家具有teamid)
基于以下详细问题: 检测到自引用循环-将数据从WebApi取回浏览器
上面的代码应该可以在我的移动服务应用程序中正常工作。 Web服务应用程序似乎忽略了config.Formatters值,因为我尝试了上述问题中的每个值,但仍然遇到相同的错误。
如果我将[JSON Ignore]属性放在Child列表之前,那么我不会得到错误,但是也不会将孩子返回到json中。 如何获得此Web应用程序以接受格式值?
谢谢您的宝贵意见。 谢谢@dbc指出我这个问题。 我花了三天时间才找到,却没有找到。 显然,我是正确的,移动应用程序忽略了json格式化程序。 您让我到这篇文章[json net error]。 在DTO用最少的代码解决问题之前,添加属性[JsonObject(IsReference = true)]。 [json净错误]:stackoverflow.com/questions/7397207/…– Haim Katz 7月24日13:41
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.