gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 16:10:33 30 4
gpt4 key购买 nike

我需要在运行时编译 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# - 在运行时编译代码并使用加载到内存中的程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25620442/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com