Как уменьшить регистр 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$;
}
}
Возможно ли это?
Ответы
Ответ 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>