【发布时间】:2013-07-25 23:47:47
【问题描述】:
用户可以从一个主应用程序启动多个 InMemory 程序集实例。 问题是 InMemory 程序集中的公共变量似乎相互覆盖。有没有办法解决这个问题?
我还尝试将 Namespace Evaluator 和 Class Evaluator 重命名为每个实例的不同名称,但这没有帮助。
Namespace Evaluator
Public Module GlobalSettings
Public Var1 As String
Public Var2 As String
Public TextBox1 As New TextBox
Public TextBox2 As New TextBox
End Module
Public Class Evaluator
'...insert code here
End Class
End Namespace
Friend Function CompileCode() As Object
Dim compResults As CompilerResults
Dim code = GetCode()
Dim provOptions As New Dictionary(Of String, String)
provOptions.Add("CompilerVersion", "v3.5")
Dim vbProv = New VBCodeProvider(provOptions)
Dim vbParams = New CompilerParameters()
vbParams.ReferencedAssemblies.Add("mscorlib.dll")
vbParams.ReferencedAssemblies.Add("System.dll")
vbParams.ReferencedAssemblies.Add("System.Windows.Forms.dll")
vbParams.ReferencedAssemblies.Add("Microsoft.VisualBasic.dll")
vbParams.ReferencedAssemblies.Add("System.Data.dll")
vbParams.TreatWarningsAsErrors = False
vbParams.GenerateExecutable = False
vbParams.GenerateInMemory = True
compResults = vbProv.CompileAssemblyFromSource(vbParams, code)
_evaluator = compResults.CompiledAssembly.CreateInstance("Evaluator.Evaluator")
End Function
【问题讨论】:
标签: vb.net visual-studio-2010 codedom