序列化时的传参,xxx是变量,但此处被当作类型来使用

2020-09-27 09:51发布

问题:

我需要传一个字符串反序列化:

Type _type = Assemblie.GetType("Calculator");
object _instance = Activator.CreateInstance(_type);

var obj2 = Newtonsoft.Json.JsonConvert.DeserializeObject<_instance>(jsonstring);

错误:

“_instance”是 变量,但此处被当做 类型 来使用

 

应该如何实现呀?_instance这个参数怎么传入?


         


        

回答1:

反序列化为什么要自己创建实例? 把Type传进去就会自己创建实例

object obj = Newtonsoft.Json.JsonConvert.DeserializeObject(jsonstring, _type);

泛型参数要直接填类型, 类似于这样

var obj = Newtonsoft.Json.JsonConvert.DeserializeObject<Calculator>(jsonstring);


回答2:

 var obj2 = (Calculator)Newtonsoft.Json.JsonConvert.DeserializeObject<Calculator>(jsonstring);


回答3:

看不懂
var obj2 = Newtonsoft.Json.JsonConvert.DeserializeObject<Calculator>(jsonstring);



标签: c#