【问题标题】:Stop ReSharper from Adding Annotations停止 ReSharper 添加注释
【发布时间】:2013-03-07 07:00:32
【问题描述】:

我在我的 C# 项目中使用 ReSharper,而且总的来说我很喜欢它。但是,当我执行某些重构操作时,它会不断向代码添加注释。

例如,当我使用“检查参数是否为空”上下文操作时,它会添加[NotNull]:

// Before context action
public void Foo(object input)
{
}

// After context action
public void Foo([NotNull] object input)
{
    if (input == null)
    {
        throw new ArgumentNullException("input");
    }
}

此外,ReSharper 然后将 using JetBrains.Annotations 添加到文件中,即使我没有引用定义属性的 JetBrains 程序集。

我想继续使用上下文操作,因为它们非常有用,但我无法在代码中引入外部注释。 ReSharper 提供了一个选项来更改默认注释命名空间并将注释属性源代码复制到您的项目中,但这也不是该项目的选项。

有没有办法告诉 ReSharper 完全停止添加注释?我已经尝试在选项中取消选中 JetBrains.Annotations 作为具有代码注释属性的命名空间,但这似乎对是否首先生成注释没有任何影响。

更新:虽然我实际上并没有引用 JetBrains.Annotations.dll,但我引用了另一个 DLL,它在同一个 JetBrains.Annotations 命名空间中重新实现了相同的注释属性。删除该 DLL 引用将阻止 ReSharper 添加注释。如果仍然可以选择关闭它会很好,但解决方法适合这种情况。

【问题讨论】:

  • NLog 是引起我问题的 DLL。我无法删除它,所以我求助于将注释添加到我们的根命名空间,因为没有 ReSharper 的生活根本不是真正的生活。
  • 强烈建议使用注解。

标签: c# resharper resharper-7.1


【解决方案1】:

当您引用 JetBrains.Annotations.dll 时,“Check parameter for null”的默认操作似乎是使用 NotNull 属性(尽管添加了“Annotate with 'NotNullAttribute'”选项。

我知道的唯一解决方法是不引用JetBrains.Annotations.dll。

更新:

对此进行更多研究,似乎有一个建议/错误,当包含注释 dll 并请求“检查参数是否为空”时添加 [NotNull]:http://youtrack.jetbrains.com/issue/RSRP-70350 以防其他人发生这种情况并且想知道为什么...

【讨论】:

  • 谢谢!我没有引用 JetBrains.Annotations.dll,但我引用了另一个 DLL,它在同一个命名空间中重新定义了所有相同的属性。删除会导致 ReSharper 停止添加属性。
猜你喜欢
  • 1970-01-01
  • 2020-05-25
  • 2020-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-16
相关资源
最近更新 更多