【问题标题】:DIY "Resolve" FeatureDIY“解决”功能
【发布时间】:2012-09-07 03:17:12
【问题描述】:

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

我想更进一步:

  1. 我想在发生更改时解析文本以查找可能需要的任何引用,而不是加下划线并等待用户“解决”。
  2. 我不仅要提供“using ...”语句,还要弄清楚在项目中要引用哪个 DLL。在 VS 中,如果您已经引用了正确的库,您只会得到“解决”。

现在,为了降低复杂性:

  1. 我只关心 C#/VS/.NET 附带的内置 .NET 库。

我知道在某些情况下,甚至 .NET 类也会重叠(例如 System.Threading 和 System.Windows.Forms 中的 Timer),但它们是例外。

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • ReSharper 是 150-350 美元左右(各种许可证)。值得每一分钱。虽然它不是“DIY”。
    • 嗯,是的,有缺点)实际上它现在更便宜了。
    【解决方案2】:

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

    这样您可以创建一个映射,并确定要添加哪个引用以及要添加哪个 using 语句。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-14
      • 2021-08-10
      • 2013-01-28
      • 2016-10-24
      • 1970-01-01
      • 2012-10-08
      • 2018-02-24
      • 2018-05-22
      相关资源
      最近更新 更多