Код: Выделить всё
var scriptPath = payload.Get(Constants.Source) as string;
var script = _fileReader.ReadFile(scriptPath);
var options = ScriptOptions.Default
.AddReferences(Assembly.GetExecutingAssembly())
.AddReferences(typeof(object).Assembly)
.AddReferences(AppDomain.CurrentDomain.GetAssemblies()
.Where(assembly => !assembly.IsDynamic && !string.IsNullOrEmpty(assembly.Location)))
.AddImports("System", "System.Collections.Generic")
.WithOptimizationLevel(OptimizationLevel.Release)
.WithAllowUnsafe(false)
.WithCheckOverflow(true);
var result = CSharpScript.EvaluateAsync(script, options, globals: new CodeExecutorInput { Data = new Dictionary() })
.GetAwaiter().GetResult();
var output = new JObject {
[Constants.DEFAULT_OUTPUT_KEY] = JToken.FromObject(result)
};
success(new DefaultOutput(output)); //This is an Action delegate`
Если класс присутствует в том же проекте -> {"result": 16}
Если класс присутствует в Nuget -> {"result": "int test = 0;\nvar count = test + 15;\ncount++;\nreturn count;"}
Ожидания для класса в Nuget такие же как класс в том же проект, т. е. {"result": 16}
Подробнее здесь: https://stackoverflow.com/questions/791 ... rary-nuget