Я хочу создать простой обработчик сценариев, чтобы использовать его в непредвиденной ситуации в моей программе.
Я могу запустить EXE-файл в памяти, но не имею представления о том, как запуститьпамять DLL.вот мой движок (полученный от vsj.co.uk):
CSharpCodeProvider prov = new CSharpCodeProvider();
ICodeCompiler compiler = prov.CreateCompiler();
CompilerParameters cp = new CompilerParameters();
cp.GenerateExecutable = false;
cp.GenerateInMemory = true;
cp.ReferencedAssemblies.Add("system.dll");
cp.ReferencedAssemblies.Add("system.xml.dll");
cp.ReferencedAssemblies.Add("system.data.dll");
cp.ReferencedAssemblies.Add("system.windows.forms.dll");
CompilerResults cr;
cr = compiler.CompileAssemblyFromSource(cp, File.ReadAllText(@"c:\test\sc2.csx"));
Assembly a = cr.CompiledAssembly;
try {
object o = a.CreateInstance(
"CSharpScript");
MethodInfo mi = a.EntryPoint;
mi.Invoke(o, null);
}
catch(Exception ex) {
MessageBox.Show(ex.Message);
}
}
и вот моя простая DLL, которую я хочу получить из нее во время выполнения:
//sc2.csx
using System;
using System.Collections.Generic;
using System.Text;
namespace dynamic_scripting
{
public class DynScripting
{
public static int executeScript(string script)
{
return 1;
}
}
}