如何反序列化动态继承泛型接口的类



>我从一个接口扩展了多个类,我有一个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 存储在它的原始类中

您需要帮助序列化程序记住类型。 有关更多详细信息,请查看此线程。

Type type = Type.GetType($"{EditorRule.GetType().Namespace}.{EditorRule.GetType().Name}"); // Can be replaced dynamically
EditorRule = (IRule)JsonConvert.DeserializeObject(JsonText, type);

这对我有用,我不知道你也可以将"动态"类型作为参数传递给 JsonConvert.Deserialize((

相关内容

  • 没有找到相关文章

最新更新