[英]compile code at run-time and use assemblies loaded on memory
我需要在运行时编译C#代码。 我正在使用这样的代码:
CSharpCodeProvider provider = new CSharpCodeProvider();
CompilerParameters parameters = new CompilerParameters();
parameters.ReferencedAssemblies.Add("MyLibrary.dll"); // File Path on Hard Drive
...
但我想使用加载在内存中的库而不是文件地址。 可能吗?
如果它是仅在内存中未生成的程序集,则可以使用:
parameters.ReferencedAssemblies.Add
( typeof(ClassInAssemblyYouWantToAdd).Assembly.Location
);
要么:
parameters.ReferencedAssemblies.Add
( Assembly.Load("Full.Qualified.Assembly.Name").Location
);
Location
属性具有加载程序集的路径。
它必须有一个程序集的硬拷贝,而不仅仅是内存中的东西,所以你不能只使用生成的程序集。 如果需要使用它们,可以先将内存生成的程序集保存到磁盘。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.