Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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#_Reflection - Fatal编程技术网

C# 如何获取当前程序调用的所有程序集的列表?

C# 如何获取当前程序调用的所有程序集的列表?,c#,reflection,C#,Reflection,我有: 组件A、B、C、D 程序集A了解B、C和D 程序集B知道C和D 程序集C知道程序集D 程序集A是入口程序集 在任何时间内,都将执行来自每个程序集的代码。我想做的是从程序集D(一个库类)中发现一个特定的(我将硬编码它的名称)程序集B(我的不同解决方案使用不同类型的“B”程序集)在某个点上已经在程序堆栈中使用。这样我就可以从程序集B中获得一个类,并在程序集D中实例化,而D“正式”不知道B。是否应该有某个地方记录加载的程序集 程序集A是入口程序集,程序集C是调用程序集,程序集D是执行程序集。那

我有:

组件A、B、C、D

程序集A了解B、C和D

程序集B知道C和D

程序集C知道程序集D

程序集A是入口程序集

在任何时间内,都将执行来自每个程序集的代码。我想做的是从程序集D(一个库类)中发现一个特定的(我将硬编码它的名称)程序集B(我的不同解决方案使用不同类型的“B”程序集)在某个点上已经在程序堆栈中使用。这样我就可以从程序集B中获得一个类,并在程序集D中实例化,而D“正式”不知道B。是否应该有某个地方记录加载的程序集

程序集A是入口程序集,程序集C是调用程序集,程序集D是执行程序集。那我怎么才能找到B呢?

我打电话:

AppDomain.CurrentDomain.GetAssemblies()

然后我循环了一遍。

您可以获得所有已加载程序集的列表(),但我不完全确定您到底想做什么。。。它感觉你在试图重新发明某种插件系统,但可能不是。创建另一个程序集,创建所有A、B、C、D类的包装类。将该程序集用作所有调用的中继点,从那里开始记录每个操作,并创建一个基类,该基类有一个静态字符串列表,其中存储了所有调用,这很恶心,但会特别方便。如果我能知道使用的是哪个程序集B,我就可以从程序集类型a中获得很多公共代码,并将它们转换成公共程序集C。