递归地从通用C#对象中删除密钥
我试图想象一个C#对象,它是一个语法树。JSON很好,但不是必需的,我只是很难处理VSUI和对象中的所有循环引用。当我尝试使用JSON.NET对其进行序列化时,会出现循环引用错误。这不是我第一次遇到类似的问题,但我想我会努力解决一下 我知道哪些键需要删除,它们是ContainingElement、ContainingNamSpace、ContainingSourceUnit、ContainingType 我试图创建一个可以重用的函数,以便在将对象传递给JSON.NET之前递归地从对象中删除这些键,但我需要一些帮助递归地从通用C#对象中删除密钥,c#,json,serialization,json.net,circular-reference,C#,Json,Serialization,Json.net,Circular Reference,我试图想象一个C#对象,它是一个语法树。JSON很好,但不是必需的,我只是很难处理VSUI和对象中的所有循环引用。当我尝试使用JSON.NET对其进行序列化时,会出现循环引用错误。这不是我第一次遇到类似的问题,但我想我会努力解决一下 我知道哪些键需要删除,它们是ContainingElement、ContainingNamSpace、ContainingSourceUnit、ContainingType 我试图创建一个可以重用的函数,以便在将对象传递给JSON.NET之前递归地从对象中删除这些键
public static object removeObjectsByName(object incoming, string WildcardRemove){
List<object newObject = new List<object>();
foreach (var item in incoming)
{
if (subItem.ToString().Contains(WildcardRemove))
{
continue;
}
}
removeObject(newObject);
return newObject;
}
公共静态对象removeObjectsByName(对象传入,字符串通配符Remove){
列表使用[JsonIgnore]注释属性
这些不是我构建的静态类,您可以在泛型对象上使用JsonIgnore
吗?您可以通过设置ReferenceLoopHandling=ReferenceLoopHandling.ignore
,告诉Json.NET在序列化过程中忽略循环引用。请参阅:。您可以使用cu命令Json.NET在运行时忽略某些属性名stom合同解析程序。有关详细信息,请参阅。如果这些答案也不能回答您的问题,请您澄清您的问题,最好不要使用代码屏幕截图(请参阅了解原因)谢谢你,DBC,我将尝试使用合同解析器。我今天早些时候尝试了ReferenceLoopHandling=ReferenceLoopHandling.Ignore
,但我仍然收到相同的循环引用错误。我不想发布图像,但我无法将其以文本格式转储,这实际上是问题所在。