首页 > 解决方案 > 无法使用特定的隐式方法反序列化泛型类

问题描述

我有一种旧类型的数据以及使用隐式方法将其转换为另一种通用数据的方法

如果您使用诸如 long 或 string 之类的类型但不使用特定类,则它是有效的...

void Main()
{
    var js = "{\"Content\":{\"B\": \"1\", \"C\": 1}}";
    var result = JsonConvert.DeserializeObject<A>(js);
        Console.WriteLine(result);
}

public class A{
     public MLString<AB> Content {get; set;}
}

public class AB{
     public string B {get; set;}
     public int C {get; set;}
}

public class MLString<T>
    {
        public T DefaultValue;
        public Dictionary<string, T> Translates = new Dictionary<string, T>();

        public static implicit operator MLString<T>(T val)
        {
            return new MLString<T>() {DefaultValue = val};
        }

        public static implicit operator MLString<T>(Dictionary<string, T> val)
        {
            return new MLString<T>() {Translates = val};
        }   
    }

我怎样才能对它进行反序列化?

标签: c#.netjson

解决方案


推荐阅读