Привет, когда я строить решение, это хорошо, но во время исполнения его неудачу с следующие ошибки:Ошибка при загрузке Newtonsoft Json десериализатор
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParams) at Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTATaskScriptingEngine.ExecuteScript()
Я упомяну, что я успешно запустить его в SSIS
с JavaScriptSerializer 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; }
}
Вы опустили начало сообщения об ошибке - это, вероятно, самая важная часть. :) – Ulric
Поле с сообщениями с заголовком «Исключение было выбрано целью вызова». Ничего больше. Это находится в пределах SSIS, поэтому я не могу самостоятельно отлаживать скрипт. – Jakub
Вы теперь используете это на другой машине, чем машина, против которой вы разрабатывали? Если это так, вам нужно установить dll в gac на целевой машине. – billinkc