C# 三个斜杠:模板可以改变吗?

3
在 C# 中,XML 注释以三个正斜杠(///)开头。例如:
/// <summary>
/// 
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>

有没有办法更改生成的注释,例如添加其他标签?我认为可能有一个定义XML的片段文件,但我找不到。有人能帮忙吗?
更新:据我所知,现有问题的第一个答案只提供了一个片段,可以根据需要插入代码。具体来说,summ+tab+tab可插入摘要行。它似乎并不涉及更改///插入的XML,这正是我正在寻找的。
该问题的其他答案说可以使用宏InsertDocComments(但我认为那不是由///调用的,或者我不知道如何引起它),另一个答案说无法完成。所以,如果真的做不到,那就算了,但我仍然抱有希望。

只是顺便提一下,StyleCop的代码片段相当不错,因为它们包括了抛出的异常。 - Magus
“重复”看起来很相似,但实际上与我的问题毫无关系。我将编辑问题以澄清差异。 - Qodex
1个回答

1
我使用的是免费的Visual Studio扩展GhostDoc,当您在符号上按下[Ctrl] + [Shift] + D时,它会自动生成xml文档。
据我所知,您无法覆盖默认的///行为。
如果没有外部软件的帮助,您可以创建自己的自定义代码段,这个快捷方式是ccc
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
  <CodeSnippet Format="1.0.0">
    <Header>
      <Title>Slashes</Title>
      <Author>Benjamin Thomas Blodgett</Author>
      <Shortcut>ccc</Shortcut>
      <Description>Creates xml documentation</Description>
    </Header>
    <Snippet>
      <Code Language="csharp">
        <![CDATA[/// <summary></summary>
/// <AnotherTag></AnotherTag>
/// <param name="sender"></param>
/// <param name="e"></param>$end$]]>
      </Code>
    </Snippet>
  </CodeSnippet>
</CodeSnippets>

当选择这种方法时,您始终可以添加选项卡停靠,就像我下面所示的那样。
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
  <CodeSnippet Format="1.0.0">
    <Header>
      <Title>Slashes</Title>
      <Author>Benjamin Thomas Blodgett</Author>
      <Shortcut>ccc</Shortcut>
      <Description>Creates xml documentation</Description>
    </Header>
    <Snippet>
      <Declarations>
        <Literal>
          <ID>summary</ID>
          <Default>Summary...</Default>
        </Literal>
        <Literal>
          <ID>anothertag</ID>
          <Default>Another Tag's Value...</Default>
        </Literal>
        <Literal>
          <ID>sender</ID>
          <Default>Sender Description...</Default>
        </Literal>
        <Literal>
          <ID>event</ID>
          <Default>Event Args...</Default>
        </Literal>
      </Declarations>
      <Code Language="csharp">
        <![CDATA[/// <summary> $summary$ </summary>
/// <AnotherTag> $anothertag$ </AnotherTag>
/// <param name="sender"> $sender$ </param>
/// <param name="e"> $event$ </param>$end$]]>
      </Code>
    </Snippet>
  </CodeSnippet>
</CodeSnippets>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接