Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用已加载到内存中的程序集,而不管其版本如何?_C#_.net_.net Assembly_Dependency Management - Fatal编程技术网

C# 如何使用已加载到内存中的程序集,而不管其版本如何?

C# 如何使用已加载到内存中的程序集,而不管其版本如何?,c#,.net,.net-assembly,dependency-management,C#,.net,.net Assembly,Dependency Management,我的情景和目标 我正在PowerShell中使用加载程序集X的第三方模块 我想通过提供扩展方法或将X中的类实例作为输入来扩展X的功能。因此,我正在VisualStudio中开发一个新的程序集Y。这取决于X,因为它使用X提供的类。我将在PowerShell会话中通过Add Type加载Y 我的技术愿望 我希望模块Y使用已加载到内存中的X的任何版本,而不依赖于其版本。只需假设X中的接口没有改变就可以了 通过这种方式,模块X可以发展(它的API是稳定的,但有定期更新),我不在乎,因为Y一直在工作 我该

我的情景和目标

我正在PowerShell中使用加载程序集X的第三方模块

我想通过提供扩展方法或将X中的类实例作为输入来扩展X的功能。因此,我正在VisualStudio中开发一个新的程序集Y。这取决于X,因为它使用X提供的类。我将在PowerShell会话中通过
Add Type
加载Y

我的技术愿望

我希望模块Y使用已加载到内存中的X的任何版本,而不依赖于其版本。只需假设X中的接口没有改变就可以了

通过这种方式,模块X可以发展(它的API是稳定的,但有定期更新),我不在乎,因为Y一直在工作


我该怎么做?(希望不会丢失太多的工具,如Intellisense。)

您可以使用AppDomain.GetAssembly获取加载到内存中的程序集列表(作用域为应用程序域)和Assembly.LoadFrom来加载GetAssembly列表中的一个返回值。

我担心进一步的开发体验。在Visual Studio中工作时,我是否可以进行类型检查、智能感知等?或者我需要通过思考来做每件事?