如何使JSON序列化程序忽略导航属性?
我完全同意这个问题: 我看到了提议的解决方案,我知道我必须使用契约旋转器,我也看到了契约分解器的代码,但我不知道如何使用它如何使JSON序列化程序忽略导航属性?,json,vb.net,asp.net-web-api,Json,Vb.net,Asp.net Web Api,我完全同意这个问题: 我看到了提议的解决方案,我知道我必须使用契约旋转器,我也看到了契约分解器的代码,但我不知道如何使用它 我应该在WebApiConfig.vb中使用它吗 我应该修改我的实体模型吗 如果您使用的是Newtonsoft.Json 用标记字段 Newtonsoft.Json.JsonIgnore 而不是 System.Text.Json.Serialization.JsonIgnore 如果你的处境和我一样,我的建议是:忘掉它,把你的控制器换成OData。它工作得很好,JS
- 我应该在WebApiConfig.vb中使用它吗
- 我应该修改我的实体模型吗
Newtonsoft.Json
用标记字段
Newtonsoft.Json.JsonIgnore
而不是
System.Text.Json.Serialization.JsonIgnore
如果你的处境和我一样,我的建议是:忘掉它,把你的控制器换成OData。它工作得很好,JSON序列化程序也没有问题。卡洛斯,我下面的解决方案有效,你可以把它标记为正确答案吗?我已经标记了你的答案,RAM,因为它有一些向上投票,所以它必须工作。但我评论这一点是因为它可能是有用的(如果对我来说)。在构造函数中,Configuration.LazyLoadingEnabled完成了以下任务:public ExampleController(){db.Configuration.LazyLoadingEnabled=false;}谢谢。我的答案同样适用于
LazyLoadingEnabled
属性的True
和False
值。你是生命的救星!!这是一个极好的回答@RAM,你知道一种方法可以通过自定义注释或其他方式有条件地只包含特定的虚拟集合吗?@Janne,我更新了我的答案,以支持将某些属性保留在其名称中(尽管我们也可以基于属性制定解决方案)。我还添加了一个链接到一个现场演示。谢谢分享@RAM,我会在未来的计划中考虑这一点。。。。只是一个快速通知@RAM,StackOverflow的代码示例是部分的,因为它缺少对_nameofVirtualPropstokep的处理(只是IF语句的另一个条件),但实时演示包含了这个缺少的专长。只是想让你知道。谢谢你的解决方案!