C# 连载;JsValue“;金特

C# 连载;JsValue“;金特,c#,.net,json.net,jint,C#,.net,Json.net,Jint,目前,我正试图找出如何将Jint.NET JavaScript环境保存到文件中,以便稍后再次加载它 但是,我在尝试序列化/反序列化Jint.Native.JsValue类时遇到了很大的困难。由于它没有构造函数,Newtonsoft不喜欢对它进行反序列化,并且在序列化时,它会忽略所有私有属性,从而只保存类型字段 string saved = JsonConvert.SerializeObject(someJsValue); //output: {Type: x} JsonConvert.Dese

目前,我正试图找出如何将Jint.NET JavaScript环境保存到文件中,以便稍后再次加载它

但是,我在尝试序列化/反序列化
Jint.Native.JsValue
类时遇到了很大的困难。由于它没有构造函数,Newtonsoft不喜欢对它进行反序列化,并且在序列化时,它会忽略所有私有属性,从而只保存
类型
字段

string saved = JsonConvert.SerializeObject(someJsValue);  //output: {Type: x}
JsonConvert.DeserializeObject<JsValue>(saved); //error: no constructor
string saved=JsonConvert.SerializeObject(someJsValue)//输出:{Type:x}
JsonConvert.DeserializeObject(已保存)//错误:没有构造函数

有什么办法可以让我正确地加载/保存它吗?

我想你应该在JsValue对象上使用ToDictionary()方法将它转换成键值对,一旦完成,你可以同样地解析它。对于泛型
JsValue
类没有
ToDictionary()
方法?至少在我的情况下不是这样。你需要实现一个自定义来解决这个问题。什么是
JsValue
?它是一个抽象类吗?它是不能编辑的框架的一部分吗?请提供一个@AndréSanson,正如标记和问题标题所明确指出的,这是Jint中包含的类,
Jint.Native.JsValue
。我认为您应该在JsValue对象上使用ToDictionary()方法将其转换为键值对,一旦完成,您就可以对其进行类似的解析。没有
ToDictionary()
泛型
JsValue
类的方法?至少在我的情况下不是这样。你需要实现一个自定义来解决这个问题。什么是
JsValue
?它是一个抽象类吗?它是不能编辑的框架的一部分吗?请提供一个@AndréSanson,标签和问题标题清楚地表明了这一点,这是Jint中包含的类,
Jint.Native.JsValue