在C#中使用文档属性

Rob*_*low 9 .net c# documentation attributes

MSDN属性教程中,它们Author用作属性的示例:

[Author("Jane Programmer", Version = 2), IsTested()]
class Order
{
    // add stuff here ...
}
Run Code Online (Sandbox Code Playgroud)

在我看来,这是一个好主意,因为它允许您使用反射按作者分组类(例如) - 有效地将通常在文档中的元数据暴露给编译器,这可能很有用.我立即想到"啊哈!我应该使用所有内联块文档的属性" - 例如:

[Author("Me")]
[Description("Add 1 to value")]
[Param("value", "The original value to add 1 to")]
public int AddOne(value) {return value + 1;}
Run Code Online (Sandbox Code Playgroud)

但是, 我找不到关于文档和属性 答案似乎没有提出这种方法.他们都使用XML进行内联文档.

是否有任何内置属性可以帮助内联文档?如果没有,是否有任何库/包包含内联文档的预定义属性集

Ond*_*cny 5

在文档中保留文档的一些缺点:

  • 长文本格式不佳;
  • 不支持Visual Studio加载项(例如使用ReSharper的文档预览功能);
  • 不支持第三方文档生成工具;
  • 在组件中包含文件,显着简化了逆向工程;
  • 使用存储在版本控制系统中的元数据复制源代码中的元数据(在源代码中跟踪任何声明的作者和版本没有意义,当VCS为您提供更精确的信息时 - VCS不会说谎).

我现在想不出任何优势.如果我真的需要它,它总是可以解析XML文档注释并将整个代码库转换为任何属性形式.