Фрагмент кода для автоматического создания геттера / сеттера? - PullRequest
6 голосов
/ 17 мая 2011

Однажды я использовал фрагмент кода, который я видел / нашел в прошлом, который превратил мое отдельное утверждение в частный / публичный метод получения / установки, я до сих пор не мог повторить этот поиск после переустановки моего компьютера.

Например:

private string serverSMTP = string.empty;

Я мог бы затем нажать Ctrl k + и превратить его в это:

        private string serverSMTP = string.Empty;
    public string ServerSMTP
    {
        get { return serverSMTP; }
        set
        {
            serverSMTP = value;
            RaisePropertyChanged("ServerSMTP");
        }
    }

Любые идеи о том, как я могу создать что-то для этого илирасширение / фрагмент, чтобы позаботиться об этом для меня?В более крупных проектах это сэкономило бы мне много времени.

Ответы [ 2 ]

6 голосов
/ 22 мая 2011

Если вы уже используете инфраструктуру MVVM Light, вы можете установить отрывки кода, которые поставляются вместе с ней, которые будут выполнять что-то похожее. В частности, фрагмент «mvvminpc» будет делать то, что вы ищете, хотя он не будет принимать существующее объявление поля и преобразовывать его в свойство с уведомлением об изменении свойства.

http://mvvmlight.codeplex.com/sourcecontrol/latest#Installer/InstallItems/Snippets/CSharp/mvvmInpc.snippet

Фрагменты кода для ускорения добавления новых свойств (только для Visual Studio):
mvvminpc добавляет новое привязываемое свойство к ViewModel.
mvvmlocatorproperty добавляет новую ViewModel в ViewModeLocator.
mvvmpropa добавляет новое присоединенное свойство к DependencyObject (только для WPF).
mvvmpropdp добавляет новое свойство зависимостей в DependencyObject (только для WPF).
mvvmslpropa добавляет новое вложенное свойство в объект DependencyObject (только Silverlight).
mvvmslpropdp добавляет новое свойство зависимостей в DependencyObject (только Silverlight).

3 голосов
/ 17 мая 2011

положить этот фрагмент:

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets
    xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
    <CodeSnippet Format="1.0.0">
        <Header>
            <Shortcut>propn</Shortcut>
            <Title>
                Notify Property
            </Title>
        </Header>

        <Snippet>
            <Declarations>
                <Literal>
                    <ID>type</ID>
                    <ToolTip>Type</ToolTip>
                    <Default>int</Default>
                </Literal>
                <Literal>
                    <ID>field</ID>
                    <ToolTip>Field name</ToolTip>
                    <Default>fieldName</Default>
                </Literal>
                <Literal>
                    <ID>property</ID>
                    <ToolTip>Propery Name</ToolTip>
                    <Default>PropertyName</Default>
                </Literal>
            </Declarations>

            <Code Language="CSharp">
                <![CDATA[       
private $type$ $field$;
public $type$ $property$
{
    get { return $field$; }
    set
    {
        $field$ = value;
        if (PropertyChanged != null)
            PropertyChanged(this, new PropertyChangedEventArgs("$property$"));
    }
}
$end$]]>
            </Code>
        </Snippet>
    </CodeSnippet>
</CodeSnippets>

внутри файла propn.snippet, в этой папке: C: \ Users [YOUR_USERNAME] \ Documents \ Visual Studio 2010 \ Фрагменты кода \ Visual C # \ Фрагменты моего кода

и после этого вы сможете использовать этот фрагмент с помощью ярлыка (propn + tab + tab).

фрагмент кода xml очень прост для самостоятельного понимания, поэтому вы можете легко настроить его в соответствии с вашими потребностями.

...