我在VS 2005下编写了一个C#类库(我知道,现代化,但我们的预算很紧张)。描述属性与<summary>属性标记
在我看来,如果我在XML文档中使用“摘要”标签,我的用户可以通过智能感知和工具提示等查看该信息,但不能在Studio的属性窗口中看到该信息。
要在该窗口中获得某些内容,我似乎需要使用[Description("This is it")]
属性。
我正确吗?如果是这样,那么它似乎是我需要复制:-(
的描述信息或者,有没有更好的办法?谢谢!
我在VS 2005下编写了一个C#类库(我知道,现代化,但我们的预算很紧张)。描述属性与<summary>属性标记
在我看来,如果我在XML文档中使用“摘要”标签,我的用户可以通过智能感知和工具提示等查看该信息,但不能在Studio的属性窗口中看到该信息。
要在该窗口中获得某些内容,我似乎需要使用[Description("This is it")]
属性。
我正确吗?如果是这样,那么它似乎是我需要复制:-(
的描述信息或者,有没有更好的办法?谢谢!
是的,这是正确的。这两种方法都非常不同的目的。
的/// <summary></summary>
意见被用来生成XML文档,为您的项目在编译时,它也由Visual Studio其智能感知数据库进行解析。
的[DescriptionAttribute]
provid es在设计器中使用的描述文本,最显着的是在属性窗口的底部。
微软自己的Windows窗体库里散布着这两者。
我不知道有什么办法可以合并这两个,但是考虑一下你是否真的想让他们与正好一样。在我自己的类库中,我经常希望在设计器中显示稍微不同的信息,而不是将其包含在我的技术文档中。
举一个简单的例子,我可能想在这个财产是不是在Windows的某些版本支持的设计师清楚,但贬谪这个信息给<remarks>
节中我的技术文档:
/// <summary>
/// Gets or sets a value indicating whether a shield should be displayed
/// on this control to indicate that process elevation is required.
/// </summary>
/// <remarks>
/// The elevation-required shield is only supported under Windows Vista
/// and later. The value of this property will be ignored under earlier
/// operating systems.
/// </remarks>
[Category("Appearance")]
[Description("Displays a shield to indicate that elevation is required. " +
"(Only applies under Windows Vista and later.)")]
public bool ShowShield { get; set; }
我的理解是你是对的。但是,您可以自动执行大多数此项工作by using GhostDoc,该工作有一个免费版本,您可以自定义该版本以添加到“描述”属性中。
摘要XML文档标签和描述属性是两个完全不同的东西。
摘要标签用于组件文档。
的描述属性是contols组件模型的一部分,并且是可用在运行时内该应用程序。这意味着信息会被编译到您的二进制程序集文件中。说明属性的内容可能对应用程序的最终用户甚至可见(例如,在使用PropertyGrid控件时)。
如果您正在查找文档,请使用XML文档。如果你想创建一个可重用的组件,你也可以使用Description属性。
谢谢大家,这就是我认为的......不一定是我想要的;-) – John66NY 2011-04-05 12:42:46
如果你真的想要消除重复,可以考虑将所有的字符串放到一个资源文件中。然后,您可以简单地从资源文件中提取字符串值,而不是直接将其写入代码中。如果这对你很重要,它也使本地化变得更容易。我在下面的答案中忽略了这一点。如果您发现它是缺失的链接,我很乐意添加它。 – 2011-04-06 06:34:44