有一种方法可以创建一个自动创建使用引用的代码片段吗?

时间:2013-07-01 15:46:40

标签: c# visual-studio-2012 code-snippets

我在c#中创建了一个简单的代码片段,用于添加行

Debug.WriteLine("");

现在,当您使用代码段时,下一步将是自动创建

using System.Diagnostic;

有没有办法自动创建引用? 我尝试以这种方式设置片段参考和导入元素:

<Snippet>
  <References>
    <Reference>
      <Assembly>System.dll</Assembly>
    </Reference>
  </References>
  <Imports>
    <Import>
      <Namespace>System.Diagnostic</Namespace>
    </Import>
  </Imports>
      .
      .
      .
</Snippet>

但它不起作用

4 个答案:

答案 0 :(得分:1)

不幸的是,Import仅适用于VB项目。它在MSDN上解释。

答案 1 :(得分:0)

System.Diagnostics.Debug.WriteLine("");

您可以在代码段中使用完全限定名称,而不是插入引用。

答案 2 :(得分:0)

我看了一下microsoft创建的mbox片段,并提出了以下内容:

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
   <CodeSnippet Format="1.0.0">
     <Header>
       <Title>dw</Title>
       <Shortcut>dw</Shortcut>
       <Description>Code snippet for System.Diagnostics.Debug.WriteLine</Description>
       <Author>MisaThinksMeDidIt</Author>
       <SnippetTypes>
         <SnippetType>Expansion</SnippetType>
       </SnippetTypes>         
     </Header>
     <Snippet>    
       <Declarations>
         <Literal>
            <ID>string</ID>
            <ToolTip>String to display</ToolTip>
            <Default>"Test"</Default>
         </Literal>
         <Literal Editable="false">
           <ID>SystemDiagnosticsDebugWriteLine</ID>
           <Function>SimpleTypeName(global::System.Diagnostics.Debug)</Function>
         </Literal>
       </Declarations>
       <Code Language="csharp"><![CDATA[$SystemDiagnosticsDebugWriteLine$.WriteLine($string$);$end$]]></Code>
     </Snippet>
  </CodeSnippet>
</CodeSnippets>

答案 3 :(得分:0)

游戏晚了一点,但是现在对C#确实有效:)

<References>
    <Reference>
        <Assembly>System.dll</Assembly>
    </Reference>
</References>
<Imports>
    <Import>
       <Namespace>System.Diagnostic</Namespace>
    </Import>
</Imports>

将它们放在<Snippet>部分中。 文档甚至提到(这也适用于C#。)

https://docs.microsoft.com/en-us/visualstudio/ide/walkthrough-creating-a-code-snippet?view=vs-2017#add-references-and-imports

PS:如果要添加多个导入,请执行以下操作:

<Imports>
    <Import>
        <Namespace>System.Diagnostic</Namespace>
    </Import>
    <Import>
        <Namespace>System.Reflection</Namespace>
    </Import>
</Imports>