如何在运行时 link "plugin" 引用 dll
How to runtime link "plugin" reference dlls
恐怕这个问题太宽泛了。但是我仍然不知道如何开始这项工作,所以即使是线索也会有所帮助,因为谷歌搜索没有任何结果...
每当我 link 引用时,我都会在构建它之前添加它。
我需要的是能够添加目录中添加的任何引用。
这将允许我将一个 dll 放在一个目录中,并且仅当该 dll 存在时才在运行时添加它。
这么说
- 开始时没有添加任何内容 ---> 没有附加功能。
- 我添加 1.dll ----> 应添加 1.dll 中存在的功能
- 我添加 2.dll ----> 应添加 2.dll 中存在的功能
等等...
我称这些 dll 为插件,因为它们类似于插件。
提前感谢您的帮助。
帕特里克
您可以创建一个新的 AppDomain 并将 appRelativeSearchPath 设置为您的插件文件夹。然后,您可以使用新 AppDomain 的 Load 方法加载其他程序集。
如果您想从应用程序主 AppDomain 中的新 AppDomain 访问 类,您可以使用 CreateInstanceAndUnwrap method of AppDomain. But the classes in your plugin assemblies have to inherit MarshalRefObject 来实例化它们。
我希望这能为您指明正确的方向。
恐怕这个问题太宽泛了。但是我仍然不知道如何开始这项工作,所以即使是线索也会有所帮助,因为谷歌搜索没有任何结果...
每当我 link 引用时,我都会在构建它之前添加它。 我需要的是能够添加目录中添加的任何引用。 这将允许我将一个 dll 放在一个目录中,并且仅当该 dll 存在时才在运行时添加它。
这么说
- 开始时没有添加任何内容 ---> 没有附加功能。
- 我添加 1.dll ----> 应添加 1.dll 中存在的功能
- 我添加 2.dll ----> 应添加 2.dll 中存在的功能
等等...
我称这些 dll 为插件,因为它们类似于插件。
提前感谢您的帮助。 帕特里克
您可以创建一个新的 AppDomain 并将 appRelativeSearchPath 设置为您的插件文件夹。然后,您可以使用新 AppDomain 的 Load 方法加载其他程序集。
如果您想从应用程序主 AppDomain 中的新 AppDomain 访问 类,您可以使用 CreateInstanceAndUnwrap method of AppDomain. But the classes in your plugin assemblies have to inherit MarshalRefObject 来实例化它们。
我希望这能为您指明正确的方向。