【发布时间】:2015-02-19 21:20:26
【问题描述】:
我试图找到如何按需要使用的类型(通过 C#)找到 dll 或程序集。
我想创建一个可以键入诸如“#include System.IO;”之类的方法当它在此类文件变量的文本中看到“路径”类型时。 所以通常我想获取计算机上的所有程序集。我知道有一些大会缓存,但我真的不明白在这种情况下如何使用它。 据我了解,来自 Assemble 的 GetType 方法可以工作,但我无法找到所有程序集来对它们使用此方法。
使用 AppDomain 的方法是无用的,因为使用的程序集仅包含在此解决方案 How to Load an Assembly to AppDomain with all references recursively?、get assembly by class name 中。
更具体地说,它是 Visual Studio 方法 Resolve 的一些自定义实现 http://i.stack.imgur.com/xNns9.png
据我所知,我应该找到 VS Tools->Customize->Commands->Click Context menu 并选择 Editor Context Menus|Code Window|Resolve 调用的方法。
很抱歉这个简单的问题,但对我来说很重要。
【问题讨论】:
-
为什么要这样做,这样做有什么作用?您可以使用当前应用程序域(参见 AppDomain),获取应用程序运行所在的目录,并获取该目录中的所有程序文件。
-
从 GAC 加载程序集:stackoverflow.com/a/2279362/4544845
-
我认为您不需要像 Visual Studio "resolve" 这样的东西,因为它只适用于项目引用的程序集。
-
这听起来像是你试图让一些编辑器(你自己的或 Visual Studio 可能)搜索你的整个驱动器,以找出当你输入部分路径名时需要添加的包含内容。这是对您问题的正确描述吗?抱歉,我所在的地方 imgur 被屏蔽了,所以我看不到你的图片。
-
史蒂夫,你说的很对。我知道我应该找到通过自定义调用VS它的命令的方法(工具->自定义->命令->单击上下文菜单并选择编辑器上下文菜单|代码窗口|解决。
标签: c# .net .net-assembly