繁体   English   中英

在Web应用程序中检测到属性的自引用循环

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM