Visual Studio 描述属性与属性< summary>标记

mmvthczy  于 2023-06-24  发布在  其他
关注(0)|答案(3)|浏览(751)

我正在VS 2005下用C#写一个类库(我知道,跟上时代,但我们这里的预算很紧)。
在我看来,如果我在XML文档中使用“summary”标签,我的用户可以通过Intellisense和工具提示等看到该信息,但不能在Studio的“Properties”窗口中看到。
要在该窗口中获取某些内容,我似乎需要使用[Description("This is it")]属性。
我说的对吗?如果是这样的话,那么似乎我需要复制描述信息:-(
或者,有没有更好的办法?谢谢!

oxcyiej7

oxcyiej71#

是的,没错。这两种方法有着非常不同的目的。

  • /// <summary></summary>注解用于在编译时为项目生成XML文档,Visual Studio也会对其IntelliSense数据库进行解析。
  • [DescriptionAttribute]提供了设计器中使用的说明文本,尤其是在“属性”窗口的底部。

微软自己的Windows窗体库中充斥着这两种方法。
我不知道有什么方法可以将两者合并,但考虑一下你是否真的希望它们完全相同。在我自己的类库中,我经常希望在设计器中显示与我希望包含在技术文档中的信息略有不同的信息。
举一个简单的例子,我可能想在设计器中明确说明某些版本的Windows不支持此属性,但将此信息放在我的技术文档中的<remarks>部分:

  1. /// <summary>
  2. /// Gets or sets a value indicating whether a shield should be displayed
  3. /// on this control to indicate that process elevation is required.
  4. /// </summary>
  5. /// <remarks>
  6. /// The elevation-required shield is only supported under Windows Vista
  7. /// and later. The value of this property will be ignored under earlier
  8. /// operating systems.
  9. /// </remarks>
  10. [Category("Appearance")]
  11. [Description("Displays a shield to indicate that elevation is required. " +
  12. "(Only applies under Windows Vista and later.)")]
  13. public bool ShowShield { get; set; }
展开查看全部
bqjvbblv

bqjvbblv2#

摘要XML文档标记和描述属性是两个完全不同的东西
summary标签用于组件的DOCUMENTATION
DescriptionAttribute是控件组件模型的一部分,在运行时应用程序中可用。这意味着信息被编译到二进制程序集文件中。Description属性的内容可以对应用程序的最终用户可见(例如使用PropertyGrid控件时)。
如果您正在寻找文档,请仅使用XML文档。如果你想创建一个可重用的组件,你也可以使用Description属性。

icnyk63a

icnyk63a3#

我的理解是你是对的。但是,您可以自动执行大部分工作by using GhostDoc,它有一个免费版本,您可以自定义添加到Description属性中。

相关问题