0

我成功地使用动态编译的程序集在运行时评估用户可定义的表达式。我的问题是关于如何将我自己程序中定义的类型的引用传递给 CompileAssemblyFromSource() 函数。目前,我被迫在用户可定义的表达式中使用“对象”,这会导致后期绑定。一旦我尝试在汇编代码中使用我自己的类型,我就会得到“错误 BC30002 - 类型 'cMyClass' 未定义”

我发现以下内容添加到听起来完全正确的参数中:

Dim executingAssembly As Assembly
Dim executingAssemblyName As String
executingAssembly = Assembly.GetExecutingAssembly()
executingAssemblyName = executingAssembly.Location
params.ReferencedAssemblies.Add(executingAssemblyName)

但这似乎根本没有帮助......

这是我尝试编译失败的示例函数:

Public Class Sample
Public Shared Function StaticFunction(ByVal myObject As cMyClass) As String
Return myObject.DoSomething
End Function
End Class

如果我用 'object' 替换 'cMyClass' 一切都很好。

4

0 回答 0