我试图执行以下操作:
ScriptOptions optins = ScriptOptions.Default
.AddReferences(typeof(HelperExtensionMethods).Assembly,...);
var globals = new ParamsVM { X = var1, Y = var2 };
var task = CSharpScript.EvaluateAsync(
"X.MyExtensionMethod() == Y.AnotherExtensionMethod()",
optins,
globals
);
task.Wait();
var res = task.Result;
我们认为X
和Y
的类型为T1
...
HelperExtensionMethods
定义如下:
public static class HelperExtensionMethods
{
public static string MyExtensionMethod(this T1 src) { ... }
public static string AnotherExtensionMethod(this object src) { ... }
}
EvaluateAsync
抛出异常说:
错误CS1061:' T1'不包含' MyExtensionMethod'的定义没有扩展方法' MyExtensionMethod'接受第一个类型' T1'可以找到(你是否错过了使用指令或汇编引用?)'
将HelperExtensionMethods
课程添加到optins
我尝试WithImports
和AddImports
但没有运气的正确方法是什么。
由于某些限制,我也从Roslyn
库移至DynamicExpresso
。