加载Newtonsoft Json反序列化器时出错



嗨,当我构建解决方案时,它很好,但在执行过程中,它失败了,以下错误:

在System.RuntimeMethodHandle

。调用方法(对象目标,对象[]参数,签名签名,布尔构造函数)在System.Reflection.RuntimeMethodInfo。UnsafeInvokeInternal(对象obj,对象[]参数,对象[]参数)在System.Reflection.RuntimeMethodInfo。调用(对象obj, BindingFlags invokeAttr, Binder, Binder, Object[] parameters, CultureInfo culture)在System.RuntimeType。InvokeMember(String name, BindingFlags BindingFlags, Binder Binder, Object target, Object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParams)在Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTATaskScriptingEngine.ExecuteScript ()

我将提到我成功地在SSISJavaScriptSerializer Deserializer中运行它。
不确定我做错了什么?
.Net40类添加外部引用(对于SQL服务器2012似乎是正确的)。
任何建议吗?

代码示例如下:

public partial class ScriptMain : Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase
{
    // dataResponse looks like that {"access_token":"bla","expires_in":222}
    // Old Code
    // JSONElements elements = new JavaScriptSerializer().Deserialize<JSONElements>(dataResponse);
    JSONElements elements = JsonConvert.DeserializeObject<JSONElements>(dataResponse);
}   
public class JSONElements
{
    public string access_token { set; get; }
    public int expired_in { set; get; }
}

尝试替换

JsonConvert.DeserializeObject<JSONElements>(dataResponse);

System.Web.Script.Serialization.JavaScriptSerializer serial = new System.Web.Script.Serialization.JavaScriptSerializer();
JSONElements incoming = serial.Deserialize<JSONElements>(dataResponse);

我认为是库没有在GAC注册,当执行SSIS复制并从TEMP运行时,从那里调用外部库并在系统变量中的注册位置"路径"中查看。尝试修改它,但不能重新启动机器-它的服务器没有微软SDK。没有其他的解决方案了

相关内容

  • 没有找到相关文章