以非侵入方式将Resharper代码注释添加到自己的代码中

我想用StringFormatMethod属性标记我的一个方法,因此Resharper语法突出显示它。

我能够通过引用JerBrains.Annotations程序集并添加属性来完成此操作。

但是我发现这是一种非常有创意的方法。 这里并不是每个人都使用JetBrains,它需要将.dll提交给subversion,添加依赖项并使用特定于特定IDE的内容乱丢代码,我讨厌。

我读到了“外部注释”function,但我无法做到。 我不确定我是否做错了,或者解决方案中的项目是否根本不支持(即不是编译的程序集引用)。

那么有没有办法以非侵入方式向项目中的方法添加代码注释?

PS这是方法:

使用系统;

namespace MyLib { public static class Assert { public static void That(bool condition, string format, params object[] @params) { if (!condition) throw new Exception(string.Format(format, @params)); } } } 

这是内容

C:\ Program Files(x86)\ JetBrains \ ReSharper \ v7.1 \ Bin \ ExternalAnnotations \ MyLib.xml:

    format    

您不必引用程序集来添加注释属性。 根据文档 ,您可以转到ReSharper/Options/Code Annotations ,将属性实现复制到剪贴板,然后将它们粘贴到您自己的源中,ReSharper将使用它们。 如果您不想在程序集中安装JetBrains ,您甚至可以更改它们所在的命名空间。

不过,我不知道你是否有幸使用外部(XML)注释来获取源代码。 我得到的印象是他们只适用于现有的二进制文件。 也就是说,我认为用属性来装饰你的源代码作为你自己和其他开发人员的文档来源是非常有价值的。

只是总结一下可能性:

  • 您引用了nuget Jetbrains.Annotations ,并且没有定义JETBRAINS_ANNOTATIONS这样的注释仅对使用源代码的开发人员有用,它们不在您的二进制文件中编译(使用条件语句),并且在引用您的dll时它们不可见。 您甚至可以将packagesOnly developmentOnly="true"属性添加到packages.config中的Jetbrains.Annotations ,因此默认情况下它不会被视为依赖项。

  • 您可以像上面那样引用JETBRAINS_ANNOTATIONS现在您有了真正的二进制依赖关系,并且Jetbrains.Annotations.dll必须与您的库一起分发,或者它必须作为nuget依赖项下载。

  • 您将带有internal选中的注释(因此客户端代码不会使用它们)复制到“YourLib.Annotations”中:它们会嵌入到您的lib中,即使只使用二进制版本也可供其他开发人员使用。

  • 您提供了外部注释:对于更大的库/更多属性,这也可以消耗40k,它是单独的文件,并且通常创建/使用不那么简单。

我个人选择了第三种选择(对于共享库,项目通常只使用nugets)

不知道它是否有帮助,但元素名称拼写错误(除非它们实际上在模式中使用了它)。 应该是