在Web应用程序中检测到属性的自引用循环
本文关键字:属性 自引用 循环 检测 Web 应用程序 | 更新日期: 2023-09-27 17:58:33
我正在尝试将移动服务应用程序移植到web应用程序。为此,我创建了一个新的web应用程序,并将相关代码从工作的移动服务复制到我创建的新web应用程序(使用移动应用程序模板。
我在新应用程序的启动方法中有以下代码:
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();
}
}
配置。格式化程序是从原始应用程序中复制的,该应用程序将实体及其子级返回到api控制器的json输出。
在新的应用程序中,我不得不将[MobileAppController]添加到我的api控制器中。我从web应用程序应用程序中的控制器收到以下错误:检测到属性Teams的自引用循环(该模型有团队-->玩家和玩家有团队ID)
基于这个详细的问题:检测到自引用循环-正在将数据从WebApi返回到浏览器
上面的代码应该像在我的移动服务应用程序中一样工作。web服务应用程序似乎忽略了配置。格式化程序值,因为我已经尝试了上面问题中的每个值,但我仍然得到相同的错误
如果我将[JSON Ignore]属性放在Child列表之前,那么我不会得到错误,但也不会将子级放回JSON中。如何使此web应用程序接受格式设置值?