我只想从给定的 dll 中加载一些类。 问题如下:
我有以下dll文件。
Dll 1:
命名空间:
- 1 级
- 2 级
Dll 2:
命名空间:
- 2 级
- 3 级
如上例所示,我有可能并且很可能有 2 个或什至更多的 dll 包含相同的类。 (注意命名空间是一样的)
现在我想到了以下几点:
- 在 Temp AppDomain 中打开一个 dll
- 检查我们不知道哪些类
- 将需要的类移动到标准 Appdomain
- 卸载临时应用域
有什么办法可以做到这一点吗?
最佳答案
您有两个不同的 dll 文件。所以您可以将两个不同的 dll 文件导入到您的 C# 项目中。 例如,第一个 dll 文件的名称是“File1”,第二个 dll 文件的名称是“File2”
const string file1_Dll_Path = @"File1.dll";
const string file2_DllPath = @"File2.dll";
[DllImport(file2_DllPath, CallingConvention = CallingConvention.Cdecl)]
public static extern int YOURFUNCTIONINFILE2DLL();
[DllImport(file1_Dll_Path, CallingConvention = CallingConvention.Cdecl)]
public static extern void YOURFUNCTIONINFILE1DLL();
注意:不要忘记添加“不安全”的 C# 窗体。像这样
unsafe public partial class FORMNAME : Form
关于c# - 从 C# 中的 dll 加载特定类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54632701/