繁体   English   中英

在运行时编译代码并使用加载到内存中的程序集

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM