您的代码段中可能有一部分需要由使用者在插入它们时进行替换。 如果要引用特定的变量或对象,并且要让用户能够将该变量或对象替换为各自的项目中的变量或对象,则这一点非常有用。 IntelliSense 代码段通过 Literal 和 Object 元素提供了此功能。
插入代码段后,通过单击替换内容并按 Ctrl + 空格键,可以访问代码中所有可能的替换对象。
创建文本替换
Literal 元素用于标识整体包含在代码段中、但在插入到代码中后可能会进行自定义的代码部分的替换对象。 例如,字符串、数字值以及应声明为文本的一些变量名。
此过程假定您已按照 如何:创建基本代码段 主题中说明的过程进行了操作。
创建文本替换
- 查找代码段的 Snippet 元素。 
- 添加 Declarations 元素作为 Snippet 元素的子元素。 Declarations 元素用于对替换声明进行分组。 
- 添加 Literal 元素作为 Declarations 元素的子元素。 Literal 元素指定单个文本。 代码段可以包含多个文本替换。 
- 添加一个 ID 元素,将其作为 Literal 元素的子级。 此元素的文本值指定将用于引用 Code 元素中的文本的名称。 
- 添加 Default 元素作为 Literal 元素的子元素。 Default 元素的文本值指定插入代码段时文本的默认值。 
创建对象替换
Object 元素用于标识代码段所需的、但可能是在代码段外部定义的项。 例如,Windows 窗体控件、ASP.NET 控件、对象实例以及类型实例应声明为对象。 对象声明需要指定类型。
此过程假定您已按照 如何:创建基本代码段 主题中说明的过程进行了操作。
创建对象替换
- 查找代码段的 Snippet 元素。 
- 添加 Declarations 元素作为 Snippet 元素的子元素。 Declarations 元素用于对替换声明进行分组。 
- 添加一个 Object 元素,将其作为 Declarations 元素的子级。 Object 元素指定单个对象。 代码段可以包含多个对象替换。 
- 添加一个 ID 元素,将其作为 Object 元素的子级。 此元素的文本值指定将用于引用 Code 元素中的对象的名称。 
- 添加一个 Type 元素,将其作为 Object 元素的子级。Default 元素的文本值指定对象的类型。 
- 添加 Default 元素作为 Object 元素的子元素。 Default 元素的文本值指定插入代码段时对象的默认值。 
引用替换
既然已创建了文本和对象,就需要通过某种方法在将由代码段插入的代码中使用这些文本和对象。 可以通过以下方法引用已在 Declarations 元素中声明的文本和对象:通过在该文本或对象的 ID 元素中的值的开始处和结尾处放置 $ 符号。
在 Code 元素中引用文本或对象
- 在文本或对象的 ID 元素值的开始处和结尾处放置 $ 符号。 例如,如果文本包含 ID 元素(其中包含值 MyID),则可以使用 $MyID$ 在 Code 元素中引用该文本。
示例
下面的代码示例演示一个同时包含 Literal 和 Object 元素的代码段。 在 Code 元素中,使用 $SqlConnString$ 引用 SqlConnString 文本,而使用 $SqlConnection$ 引用 SqlConnection 对象。
<CodeSnippets xmlns="https://schemas.microsoft.com/VisualStudio/CodeSnippet">
    <CodeSnippet>
        <Header>
            <!-- Add Header information here -->
        </Header>
        <Snippet>
            <!-- Add additional Snippet information here -->
            <Declarations>
                <Literal>
                    <ID>SqlConnString</ID>
                    <ToolTip>Replace with a SQL connection string.</ToolTip>
                    <Default>"SQL connection string"</Default>
                </Literal>
                <Object>
                    <ID>SqlConnection</ID>
                    <Type>System.Data.SqlClient.SqlConnection</Type>
                    <ToolTip>Replace with a connection object in your application.</ToolTip>
                    <Default>dcConnection</Default>
                </Object>
            </Declarations>
            <Code Language="CSharp">
                <![CDATA[
                    daCustomers = new SqlClient.SqlDataAdapter();
                    selectCommand = new SqlClient.SqlCommand($SqlConnString$);
                    daCustomers.SelectCommand = selectCommand;
                    daCustomers.SelectCommand.Connection = $SqlConnection$;
                ]]>
            </Code>
        </Snippet>
    </CodeSnippet>
</CodeSnippets>