<references>和<imports>标签是否应该适用于C#代码段?

时间:2018-12-08 06:31:59

标签: visual-studio-2017 code-snippets

Microsoft对于自定义代码段的文档存在冲突。根据{{​​3}}:

  

您可以使用References元素添加对项目的引用,并使用Imports元素添加Imports声明。 (这也适用于C#。

但是随后,this page与此相反,并说:

  

仅Visual Basic项目支持Imports元素。

我当前正在尝试将<References><Imports>元素用于C#代码段,并且它可以与快捷方式一起使用,但不会添加using语句或引用。

这是我正在测试的.snippet文件的XML:

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
  <CodeSnippet Format="1.0.0">
    <Header>
      <Title>Test snippet</Title>
      <Author>Test Author</Author>
      <Description>Test Description</Description>
      <Shortcut>test1</Shortcut>
    </Header>
    <Snippet>
      <Code Language="CSharp">
        <![CDATA[Console.WriteLine("Hello World.");]]>
      </Code>
    </Snippet>
    <References>
      <Reference>
        <Assembly>System.Windows.Forms.dll</Assembly>
      </Reference>
      <Reference>
        <Assembly>System.Drawing.dll</Assembly>
      </Reference>
    </References>
    <Imports>
      <Import>
        <Namespace>System.Windows.Forms</Namespace>
      </Import>
      <Import>
        <Namespace>System.Drawing</Namespace>
      </Import>
    </Imports>
  </CodeSnippet>
</CodeSnippets>

C#是否真的支持<References><Imports>?还是仅Visual Basic支持它?

1 个答案:

答案 0 :(得分:0)

它也适用于C#,只需将引用和导入放在<Snippet></Snippet>内。

示例:

<Snippet>
        <References>
            <Reference>
                <Assembly>System.dll</Assembly>
            </Reference>
        </References>
        <Imports>
            <Import>
            <Namespace>System.ComponentModel</Namespace>
            </Import>
        </Imports>
        <Code Language="CSharp">
            <![CDATA[
            
            
            ]]>
        </Code>
        <Declarations>
            <Literal>
                <ID>ModelClass</ID>
                <Default>object</Default>
            </Literal>
        </Declarations>
    </Snippet>

在此处了解更多信息:msdn Walkthrough on Code Snippets