2013-03-18 136 views
15

我在我的C#项目中使用ReSharper,并且通常我喜欢它。但是,当我执行某些重构操作时,它会一直向代码添加注释。停止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添加注释。如果仍然有一个选项可以关闭此功能,那很好,但解决方法适合这种情况。

+1

NLog是造成我的问题的DLL。我无法删除它,所以我采取了将注释添加到我们的根名称空间,因为没有ReSharper的生活并不真正生活。 – 2014-11-17 17:35:47

+0

强烈建议使用注释。 – 2016-03-24 14:06:35

回答

6

当您引用JetBrains.Annotations.dll,对于“检查参数为空”的默认动作似乎是使用NotNull属性(尽管增加一个选项“与‘NotNullAttribute’注解”。

的只有我知道的是解决方法,以不引用JetBrains.Annotations.dll

更新:

寻找更多到这一点,似乎有一个建议/错误当注释DLL包括在内,“检查参数为[NotNull]添加空“请求:http://youtrack.jetbrains.com/issue/RSRP-70350万一其他人发生这种情况和奇迹为什么 ...

+1

谢谢!我没有引用JetBrains.Annotations.dll,但是我引用了另一个DLL,它在相同的命名空间中重新定义了所有相同的属性。删除会导致ReSharper停止添加属性。 – 2013-03-19 16:31:07