首页 > 解决方案 > 如何反序列化动态继承通用接口的类

问题描述

我有多个从接口扩展的类,并且我有一个 json 编辑器来编辑列表中的每个类,“I”是我的接口

所以假设我有当前类的变量,其中属性已被编辑

我现在有了包含新值的新 Json

如何根据正在编辑的当前类反序列化新的 json?

如果有帮助,我可以访问班级名称,但我找不到办法

我已经为当前选定的类尝试了 .GetType() :IRule 和反射器


class RuleOne : IRule
{
    public bool variable{ get; set; }
    public int num;
}

class RuleTwo : IRule
{
    public bool variable{ get; set; }
    public string name;
}

List<IRule> Rules = new List<IRule>;

Rules.Add(new RuleOne());
Rules.Add(new RuleTwo());

string json = JsonConvert.SerializeObject(Rules[0]);

// How do I deserialize the json string into Rules[0] ?

我希望修改后的 json 存储在它的原始类中

标签: c#interfacejson.netjsonconvert

解决方案


您需要帮助序列化程序记住类型。检查线程以获取更多详细信息。


推荐阅读