Подтвердить что ты не робот

Как уменьшить регистр Visual Studio Code Snippet?

Я создал несколько фрагментов для создания полей для класса настроек. Теперь я использую 2 переменные - $setting$ и $setting$ - для создания имен для свойства и поля поддержки. Мне нравится использовать одну переменную, потому что единственное отличие заключается в том, что поле поддержки всегда является версией с более низким уровнем.

Текущий код:

string $setting$;

/// <summary>
/// Gets the $bigComment$.
/// </summary>
/// <value>The $smallComment$.</value>
public string $Setting$
{
    get
    {
        if (String.IsNullOrEmpty($setting$))
        {
            $setting$ = CFW.Common.Configuration.GetAppSetting("$Setting$", $defaultValue$);
        }

        return $setting$;
    }
}

Возможно ли это?

4b9b3361

Ответ 1

Невозможно изменить литералы в фрагментах кода. Доступны некоторые функции:

GenerateSwitchCases. Создает оператор switch и набор операторов case для членов перечисления, заданных параметром EnumerationLiteral. Параметр EnumerationLiteral должен быть либо ссылкой на литерал перечисления, либо тип перечисления.

ClassName. Возвращает имя класса, содержащего вставленный фрагмент.

SimpleTypeName - уменьшает параметр TypeName до его простейшей формы в контексте, в котором был вызван фрагмент.

Но они не могут изменять литералы.

Источник: http://msdn.microsoft.com/en-us/library/ms242312(v=vs.110).aspx

Ответ 2

В соответствии с официальными документами MSDN значения по умолчанию для фрагментарных переменных должны быть определены в XML фрагмента, не используя имена переменных.

Итак, у вас будет что-то вроде этого:

<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/CodeSnippet">
    <CodeSnippet>
        <Header>
            <!-- Add header information here -->
        </Header>
        <Snippet>
            <!-- Add additional Snippet information here -->
            <Declarations>
                <Literal>
                    <ID>SettingsField</ID>
                    <ToolTip>The settings field.</ToolTip>
                    <Default>settings</Default>
                </Literal>
                <Object>
                    <ID>SettingsProperty</ID>
                    <ToolTip>The settings property.</ToolTip>
                    <Default>Settings</Default>
                </Object>
            </Declarations>
            <Code Language="CSharp">
                <![CDATA[
                    Snippet code with $SettingsField$ and $SettingsProperty$
                ]]>
            </Code>
        </Snippet>
    </CodeSnippet>
</CodeSnippets>