c# - C# WinForm 中的 AppDomain.CurrentDomain.GetAssemblies()
问题描述
我需要为项目生成我的程序集列表。我正在使用这段代码:
Assembly[] lstAssembly = AppDomain.CurrentDomain.GetAssemblies();
这在某种程度上有效,但它没有在解决方案中显示我的所有命名空间。我想知道为什么它没有显示我的解决方案中的所有命名空间
我的解决方案及其项目是这样的:
> MySolution'TST'
>|-->BaseWinApp(Project1)
>|-->ProductWinApp(Project2)
>|-->SaleWinApp(Project3)
>|-->TST(Start Up Project)
解决方案
默认情况下,它只返回直接引用的库。如果要加载所有这些,则需要递归加载。
var myrootAssembly = Assembly.GetExecutingAssembly();
var loadedPath = myrootAssembly.Location;
var rootPath = loadedPath.Substring(0, loadedPath.LastIndexOf('\\') + 1);
var referencedPaths = Directory.GetFiles(rootPath, "*.dll");
foreach (var refPath in referencedPaths)
{
assemblyList.Add(Assembly.LoadFrom(refPath));
}
推荐阅读
- git - 从跟踪远程分支更新本地分支而不丢失本地分支中的更改
- laravel - 访客用户的门禁能力定义不工作
- javascript - Vue - 如何为文本区域和输入字段创建交互式功能?
- javascript - 为什么将新节点添加到链表后,prev 节点设置为 Circular 而不是 _Node?
- c - 确定递归函数的复杂度
- java - Getting the exact timestamp from oracle database using jdbc
- docker - Facing issues while updating BotiumBox 2.5.0 community edition
- java - Apache Camel 中的类型转换错误
- python - MLFlow 和 Hydra 一起使用会导致崩溃
- typo3 - TYPO3 v10.4 - Incorrect integer value during persistence