如何忽略NodaTime nuget包xml文档文件中对jetbrains.annotations.dll的引用

Mat*_*ton 4 c# resharper visual-studio nuget nodatime

我非常依赖Resharper上下文操作来生成样板代码.直到最近,上下文操作的Check参数生成了执行空检查并相应抛出的代码.但是,现在它正在将[NotNull]参数的Resharper特定注释添加为方法签名的一部分.

看看这个相关问题Stop ReSharper来自添加注释,我已经在我的解决方案代码库中查看了jetbrains.annotations.dll参考资料,但没有找到任何参考资料.

但是,搜索所有文件我在NodTime(NodaTime.xml)jetbrains.annotations.dll的xml文档文件中找到了引用.

具体来说,这样的条目: <member name="T:JetBrains.Annotations.NotNullAttribute">.

我并非断然断言这是根本原因.但是,NodaTime是我自问题开始以来添加的最新nuget包,并且解决方案中的grep显示这是单一参考点.

xml文档文件是否应该包含这些引用,如果是这样,有没有办法让我配置Resharper来忽略它们?

更新 我已经反编译了NodaTime程序集,虽然它没有对jetbrains.annotations.dll的任何二进制引用,但它确实(重新)声明了违规的JetBrains.Annotations命名空间和注释本身.

根据citizenmatts的建议,我用Resharper 带我去定义[NotNull]属性的工具,这就是NodaTime.dll

我还注意到NotNullResharper所包含的属性不会编译和抱怨Cannot reference internal class NotNullAttribute.因此,我显然没有包含jetbrains.annotations.dll.

更新2 刚刚完成了在VS2013中创建一个新的空白项目并检查Resharper中的空检查上下文操作的明显事情.然后添加NodaTime nuget包并重新检查 - 实际上它添加了[NotNull]属性,项目不会编译.

更新3 正如Jon Skeet所建议的那样,我尝试使用Resharper - > Code Inspection - > Code Annotations - > Unticking JetBrains.Annotations"关闭"数据注释.但是,这没有任何影响,并且继续包含NotNull属性.

看起来我可能只需要返回System.DateTime.

Jon*_*eet 7

野田佳彦时间故意船舶的R#注释的一个内部复制,使那些谁希望他们可以从中受益-它会知道哪些方法是纯粹的,等等.

听起来你实际上根本不想使用注释,所以它只是值得禁用它们.R#选项很简单 - 在Code Inspection/Code Annotations下,取消选中JetBrains.Annotations选项.

我们当然可以考虑注解移动到在未来的野田某一特定时间的命名空间,所以它更选择在比选择退出,不过这可能是一个很好的解决方案,如果你不想使用注解,因为它使这是绝对清楚的是,你真的R· 并不想使用它们,即使其他库包括注释.

编辑:只是为了促进马特对这个答案的评论:

遗憾的是,这是ReSharper中的一个错误 - 它NotNullAttribute在应用之前不会考虑到帐户.这是跟踪和投票的门票:http://youtrack.jetbrains.com/issue/RSRP-413425

  • 遗憾的是,这是ReSharper中的一个错误 - 它在应用之前不会将`NotNullAttribute`的可见性考虑在内.这是跟踪和投票的门票:http://youtrack.jetbrains.com/issue/RSRP-413425 (3认同)