JSON.NET反序列化递归抽象类

时间:2018-01-04 08:04:33

标签: c# json json.net

我的数据结构如下:

cache()

我需要序列化和反序列化Argument类的实例。经过一些研究后我发现我需要使用自定义JsonConverter作为Argument类型。但问题是:不会为嵌套属性调用CanConvert方法。

我知道我可以添加一些属性,但我不想这样做(出于更多原因)。我发现我可能需要以某种方式覆盖IContractResolver。所以我试过这样的事情:

public abstract class Argument
{
}

public class StringArgument : Argument
{
    public string Test { get; }

    public StringArgument(string test)
    {
        Test = test;
    }
}

public class SetArgument : Argument
{
    public HashSet<Argument> Args { get; }

    public SetArgument(HashSet<Argument> args)
    {
        Args = args;
    }
}

但同样,不会为内部参数调用CreateContract方法。

我能做什么?

0 个答案:

没有答案