在VS2013中为C#创建自定义代码段

时间:2015-09-23 07:31:36

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

Creating Custom Code Snippet对我没什么帮助。我的问题是针对我的要求的。

我想为我的Property写一个自定义代码段。通常情况下,当我们写 prop 和双选项卡时,我们会得到输出

public int MyProperty { get; set; }

当我们写propfull时,我们得到了

private int myVar;

public int MyProperty
{
    get { return myVar;}
    set { myVar = value;}
}

一旦我们更改变量名称,它就会自动反映无处不在

现在我想写这样的代码片段

public int MyProperty
{
    get
    {
        return GetValue(() => MyProperty);
    }
    set
    {
        SetValue(() => MyProperty, value);
    }
}

我从MSDN获得Creating a Code Snippet

这就是我尝试过的

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets
    xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
    <CodeSnippet Format="1.0.0">
        <Header>
            <Title>propmy</Title>
        </Header>
        <Snippet>
            <Code Language="csharp"><![CDATA[public int MyProperty
        {
                get { return GetValue(() => MyProperty); }
                set { SetValue(() => MyProperty , value); }
        }
$end$]]>
            </Code>
        </Snippet>
    </CodeSnippet>
</CodeSnippets>

但是当我在VS IDE中编写propmy时,没有任何内容显示在列表中,并且它在第一个选项卡和第二个选项卡上支持prop,它创建的属性就像普通的一样。我不知道该怎么办?

1 个答案:

答案 0 :(得分:1)

您可以尝试添加

<Shortcut>propmy</Shortcut>

在XML的标题部分。我相信这会解决问题

修改

我已经为您创建了完整的XML。只需复制粘贴,它就会帮助你。

<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets  xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
    <CodeSnippet Format="1.0.0">
        <Header>
            <Title>propmy</Title>
            <Shortcut>propmy</Shortcut>
            <Description>Automatically implemented property</Description>
            <Author>BugFree</Author>
            <SnippetTypes>
                <SnippetType>Expansion</SnippetType>
            </SnippetTypes>
        </Header>
        <Snippet>
            <Declarations>
                <Literal>
                    <ID>type</ID>
                    <ToolTip>Property type</ToolTip>
                    <Default>int</Default>
                </Literal>
                <Literal>
                    <ID>property</ID>
                    <ToolTip>Property name</ToolTip>
                    <Default>MyProperty</Default>
                </Literal>
            </Declarations>
            <Code Language="csharp"><![CDATA[public $type$ $property$
        {
                get { return GetValue(() => $property$); }
                set { SetValue(() => $property$ , value); }
        }
$end$]]>
            </Code>
        </Snippet>
    </CodeSnippet>
</CodeSnippets>