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

时间:2014-03-03 17:14:59

标签: c# xml comments

在C#中,XML注释以三个正斜杠(///)开头。例如:

/// <summary>
/// 
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>

有没有办法更改生成的评论,例如添加其他标签?我以为可能有一个定义XML的片段文件,但我找不到。有人可以帮忙吗?

更新:据我所知,现有question的第一个答案只是提供了一个按需插入代码的代码段。具体来说,summ + tab + tab插入摘要行。它似乎不涉及更改///插入的XML,这正是我正在寻找的。

该问题的其他答案说它可以用宏InsertDocComments完成(但我不认为这是由///调用的,或者我不知道如何导致它),另一个答案说它无法做到。所以,如果它真的无法完成,哦,好吧,但我仍然希望。

1 个答案:

答案 0 :(得分:0)

我使用GhostDoc这是一个免费的Visual Studio扩展程序,当您在符号上按[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>