>我从一个接口扩展了多个类,我有一个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((