Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
递归地从通用C#对象中删除密钥_C#_Json_Serialization_Json.net_Circular Reference - Fatal编程技术网

递归地从通用C#对象中删除密钥

递归地从通用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之前递归地从对象中删除这些键

我试图想象一个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
,但我仍然收到相同的循环引用错误。我不想发布图像,但我无法将其以文本格式转储,这实际上是问题所在。