我需要在运行时编译C#代码.我正在使用这样的代码:CSharpCodeProvider provider = new CSharpCodeProvider();CompilerParameters parameters = new CompilerParameters();parameters.ReferencedAssemblies.Add(My...
我需要在运行时编译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属性具有加载的程序集的路径.
它必须具有程序集的硬拷贝,而不仅仅是内存中的内容,因此您不能仅为此而使用生成的程序集.如果需要使用内存生成的程序集,可以先将其保存到磁盘.
沃梦达教程
本文标题为:C#-在运行时编译代码并使用加载到内存中的程序集
猜你喜欢
- C#开启线程的四种方式示例详解 2023-01-06
- C#导出pdf的实现方法(浏览器不预览直接下载) 2023-02-03
- netcore Linux环境部署注意事项 2023-09-28
- C#中#define后面只加一个参数的解释 2023-01-22
- c# – 如何在Windows机器上编译Linux的.NET Core应用程序 2023-09-26
- C#实现常见加密算法的示例代码 2023-06-27
- C#单线程和多线程端口扫描器详解 2023-06-27
- 浅谈C#中ListView类的用法 2023-03-09
- LINQ(语言集成查询)使用案例 2023-06-04
- C#表达式树Expression动态创建表达式 2023-05-11