DIY“解决”功能

时间:2012-09-07 03:17:13

标签: c# .net visual-studio-2010 resolve

我想创建自己的自动“解析”功能。在VS中,当您右键单击并选择“Resolve”时,它会为您提供选项,在选择一个选项时,它会向该文件添加必要的“using ...”语句。

我想更进一步:

  1. 我想在有更改时解析文本,以查找可能需要的任何引用,而不是下划线并等待用户“Resolve”。
  2. 我不仅要提供“using ...”语句,还要弄清楚要在项目中引用哪个DLL。在VS中,如果已经引用了正确的库,则只能获得“Resolve”。
  3. 现在,为了降低复杂性:

    1. 我只关心随C#/ VS / .NET一起提供的内置.NET库。
    2. 我知道有一些情况甚至.NET类重叠(例如System.Threading和System.Windows.Forms中的Timer),但它们是例外。

      所以,我的问题是,是否有一些我可以获取的列表/映射将所有.NET类映射到“using ...”语句和库引用(包括标准文件路径)?或者,我有什么方法可以自动生成这样的列表吗?

2 个答案:

答案 0 :(得分:2)

您可以查找提供此功能的第三方产品。市场上有一个很棒的产品ReSharper,它可以从源代码文件(而不是编译代码)构建符号数据库,这也是快速和优化的。它允许您解析符号并添加对程序集的引用,如果它已经从解决方案中的其他项目知道此程序集。我相信它不是唯一的产品。

从系统程序集构建类列表并不难。只需从标准安装中创建系统程序集列表,加载每个程序集并创建公共类列表。查看System.Reflection.Assembly方法,例如Load()和GetTypes()

答案 1 :(得分:1)

我认为您可以在GAC中列出DLL,并使用反射列出每个DLL的所有公共类。

通过这种方式,您可以创建映射,并确定要添加的引用和要添加的using语句。