C# 将常量呈现到XML文档中?
我有两个私有常量和一个公共方法:C# 将常量呈现到XML文档中?,c#,visual-studio,xml-documentation,C#,Visual Studio,Xml Documentation,我有两个私有常量和一个公共方法: private const byte _minAge = 24; private const byte _maxAge = 29; public bool IsInAgeRange() { ... } 我正在添加XML文档,如果我的代码的用户能够在IntelliSense中阅读此文档,我会非常高兴:检查年龄是否在允许的范围内(24到29岁)。 我的问题是: 有没有办法将常量呈现到XML文档中 我提出的备选方案有: 只需在文档中写入24和29(缺少对实际值的
private const byte _minAge = 24;
private const byte _maxAge = 29;
public bool IsInAgeRange() { ... }
我正在添加XML文档,如果我的代码的用户能够在IntelliSense中阅读此文档,我会非常高兴:检查年龄是否在允许的范围内(24到29岁)。
我的问题是:
有没有办法将常量呈现到XML文档中
我提出的备选方案有:
和
(减少封装并减少文档的信息量)我不认为有任何方法可以在文档中写入常量
\u minAge
和\u maxAge
的实际值,但您可以使用
标记参考它们,如下所示:
/// <summary>
/// Checks whether the age is within the allowed range (between <see cref="_minAge" /> and <see cref="_maxAge" />).
/// </summary>
//
///检查年龄是否在允许的范围内(介于和之间)。
///
现在,这将在您的文档中创建指向这些常量的链接,这样,当您生成文档并稍后呈现它们时,用户将能够单击这些链接并参考相应的常量。为包含该值的每个常量添加摘要,然后参考这些注释:
/// <summary>24</summary>
private const byte _minAge = 24;
/// <summary>29</summary>
private const byte _maxAge = 29;
/// <summary>Checks whether the age is within the allowed range (between <inheritdoc cref="_minAge"/> and <inheritdoc cref="_maxAge"/>).</summary>
public bool IsInAgeRange() { ... }
///24
私有常量字节_minAge=24;
/// 29
私有常量字节_maxAge=29;
///检查年龄是否在允许的范围内(介于和之间)。
公共bool isnagerange(){…}
我知道这仍然是重复的,但这样你可以将你的常量注释保留在常量附近,如果常量完全在另一个文件中定义。这结合了@kalu93的答案和@DhyMik的注释,展示了如何在
标记和
标记中使用
:
///24
私有常量字节_minAge=24;
/// 29
私有常量字节_maxAge=29;
///
///检查年龄是否在允许范围内
///(在和之间)。
///
///
///年龄(必须介于和之间
/// ).
///
公共图书馆管理范围(内页){
return\u minAge你似乎在重复我在备选方案2中提到的内容;见缺点thereHa,好吧,既然我在你编辑你的问题之前回答了,我可以说你重复了我在回答中写的内容:p底部总是在那里,编辑只是拼写错误奇怪……一定没有注意到对不起。无论如何,我这是我知道的唯一解决方案。我认为如果注释与私有的常量在同一个类中,它应该可以工作,而不必将它们公开?是的,我想这不起作用。但是你可以问自己,当为托管范围()时,为什么常量是私有的
是公共的吗?为什么用户可以验证对象的年龄,但不知道在什么条件下它才被认为是有效的?我想知道同样的情况,因为它在JavaDoc中是可能的。但在.net的文档中似乎是不可能的?(你(或其他人)有吗)为C#创建了功能请求?如果是,请在此处添加链接。如果不是,我建议您创建一个。被认为是“迄今为止最好的解决方法”:谢谢!亲爱的读者,如果本机支持它,请发布一个新的答案,我将重新评估。对于其他尝试此功能的人,请注意,它只在
标记中起作用。我在
标记的文本中尝试了它,但它不起作用。此外,如果您使用Swagger来记录ASP.NET Web API,请使用
标记无法正常工作(XML是逐字呈现的,而不是呈现实际继承的文档-参见此).@EricMutta当在标记内部使用
且仅指定cref但未指定路径值时,默认情况下
将仅引用ref目标中的相同标记。因此,如果在
标记内部使用
标记,则仅使用ref目标的相同
标记的内容。如果您要引用在@kalu93的答案中,从
标记中选择ref目标的summary标记的内容,使用
。path选项使用XPath符号选择引用的目标。我建议使用
标记,而不是将数字放在
标记中。它更具语义,并保留了e
标记以获取更多相关内容。然后可以使用
@DhyMik引用该值。感谢您的提示!我添加了一个答案,将您的提示与@kalu93的答案结合起来。对于可能错过
的路径
属性的任何其他人,它实际上已记录在(完成示例后,向下滚动到该链接中的inheritationryreturns
类)。