c# - 在 C# 中使用文档属性

标签 c# .net attributes documentation

<分区>

MSDN Attributes Tutorial他们使用 Author 作为属性的示例:

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

在我看来,这似乎是个好主意,因为它允许您使用反射按作者(例如)对类进行分组 - 有效地将通常在文档中的元数据公开给编译器,这可能很有用。我立即想到“啊哈!我应该为我所有的内联 block 文档使用属性”——例如:

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

但是没有of the answers我可以找到有关文档和属性的信息,似乎建议使用这种方法。它们都将 XML 用于内联文档。

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

最佳答案

将文档保存在属性中的一些缺点:

  • 长文本格式不佳;
  • 不受 Visual Studio 附加组件的支持(例如使用 ReSharper 的文档预览功能);
  • 不支持第 3 方文档生成工具;
  • 在程序集中包含文档,这大大简化了逆向工程;
  • 源代码中的元数据与存储在版本控制系统中的元数据重复(当 VCS 为您提供更准确的信息时,跟踪源代码中任何声明的作者和版本毫无意义 — VCS 不会谎言)。

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

关于c# - 在 C# 中使用文档属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12670879/

相关文章:

python - 无法使用方法在python中设置类属性

C# 字典 - 如何解决项目数量限制?

c# - FormClosing属性有问题

c# - 如何在 ToDictionary 转换中获取重复键?

.net - 搜索旧的 .Net 库

Java - 来自父级的相同方法,但使用每个子级的单独属性

html - 如何将 Bootstrap 类应用于 css 文件中的每个相同 HTML 元素?

c# - 重新初始化变量或声明新的?

c# - 如何使用 asp.net mvc 包装器在 kendoUI 网格中有一个自动完成字段

c# - 无法将发布值从 ajax 传递到 .net c# 中的页面