C# 在Roslyn的脚本API中使用扩展方法会引发异常
我正在努力做到以下几点:C# 在Roslyn的脚本API中使用扩展方法会引发异常,c#,dynamic,roslyn,C#,Dynamic,Roslyn,我正在努力做到以下几点: ScriptOptions optins = ScriptOptions.Default .AddReferences(typeof(HelperExtensionMethods).Assembly,...); var globals = new ParamsVM { X = var1, Y = var2 }; var task = CSharpScript.EvaluateAsync( "X.MyExtensionMethod() == Y.An
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) { ... }
}
evaluateSync
抛出一个异常,该异常表示:
错误CS1061:“T1”不包含“MyExtensionMethod”的定义,并且找不到接受类型为“T1”的第一个参数的扩展方法“MyExtensionMethod”(是否缺少using指令或程序集引用?)
将classHelperExtensionMethods
添加到选项中的正确方法是什么?我尝试了导入和AddImports
,但运气不佳
由于存在一些限制,我还从DynamicExpresso
库转到了Roslyn