Parametry szablonu
Przy użyciu parametrów w szablonach, można zamienić wartości kluczowych części szablonu, na przykład nazwy klas i obszary nazw, przy tworzeniu wystąpienia szablonu.Parametry te są zastępowane przez kreatora szablonów, który działa w tle, gdy użytkownik kliknie OK w oknach dialogowych Nowy projekt lub Dodaj nowy element.
Deklarowanie i włączanie parametrów szablonu
Parametry szablonu są deklarowane w formacie parameter$.Na przykład:
$safeprojectname$
$guid1$
$guid5$
Aby włączyć podstawienie parametru w szablonach
W pliku .vstemplate szablonu zlokalizuj element ProjectItem, który odpowiada elementowi, dla którego chcesz włączyć parametr zastępczy.
Ustaw atrybut ReplaceParameters elementu ProjectItem na true.
W pliku kodu dla elementu projektu dołącz parametry, gdzie są potrzebne.Na przykład następujący parametr określa, że nazwa bezpiecznego projektu będzie używana dla obszaru nazw w pliku:
namespace $safeprojectname$
Zastrzeżone parametry szablonu
Poniższa tabela zawiera listę zastrzeżonych parametrów szablonu, które mogą być używane przez dowolny szablon.
[!UWAGA]
Parametry szablonu uwzględniają wielkość liter.
Parametr |
Opis |
---|---|
clrversion |
Aktualna wersja środowiska uruchomieniowego języka wspólnego (CLR). |
GUID [1-10] |
Identyfikator GUID służący do zamienienia identyfikatora GUID w pliku projektu.Można określić do dziesięciu unikatowych identyfikatorów GUID (na przykład guid1). |
itemname |
Dostarczona nazwa użytkownika w oknie dialogowym Dodaj nowy element. |
machinename |
Bieżąca nazwa komputera (na przykład Computer01). |
projectname |
Dostarczona nazwa użytkownika w oknie dialogowym Nowy projekt. |
registeredorganization |
Wartość klucza rejestru z HKLM\Software\Microsoft\Windows NT\CurrentVersion\RegisteredOrganization. |
rootnamespace |
Główny korzeń obszaru nazw bieżącego projektu.Ten parametr dotyczy tylko szablonów elementów. |
safeitemname |
Podana nazwa użytkownika w oknie dialogowym Dodaj nowy element z wszystkimi niebezpiecznymi znakami i usuniętymi spacjami. |
safeprojectname |
Dostarczona nazwa użytkownika w oknie dialogowym Nowy projekt z wszystkimi niebezpiecznymi znakami i usuniętymi spacjami. |
time |
Bieżący czas w formacie MM/DD/RRRR 00:00:00. |
SpecificSolutionName |
Nazwa rozwiązania.Gdy jest zaznaczona opcja "Utwórz katalog rozwiązania", SpecificSolutionName ma nazwę rozwiązania.Gdy "Utwórz katalog rozwiązania" nie jest zaznaczony, SpecificSolutionName jest pusta. |
userdomain |
Bieżący użytkownik domenowy. |
username |
Bieżąca nazwa użytkownika. |
webnamespace |
Nazwa bieżącej witryny sieci Web.Ten parametr jest używany w szablonie formularza sieci Web do zagwarantowania unikalnych nazw klas.Jeśli witryna sieci Web jest w katalogu głównym serwera sieci Web, ten parametr szablonu jest rozpoznawany do katalogu głównego serwera sieci Web. |
year |
Bieżący rok w formacie RRRR. |
Parametry szablonu niestandardowego
Można określić własne parametry szablonu i wartości, oprócz parametrów szablonu domyślnego zastrzeżone, które są używane podczas zamiany parametru. Aby uzyskać więcej informacji, zobacz CustomParameters — Element (szablony Visual Studio)
Przykład: Zamienianie nazwy plików
Nazwy zmiennych plików dla elementów projektu można określić przy użyciu parametru za pomocą atrybutu TargetFileName.Na przykład, można określić, że plik .exe użyje nazwy projektu, określonej przez $projectname$, jako nazwę pliku.
<TemplateContent>
<ProjectItem
ReplaceParameters="true"
TargetFileName="$projectname$.exe">
File1.exe
</ProjectItem>
...
</TemplateContent>
Przykład: Używanie nazwy projektu dla nazwy obszaru nazw
Aby użyć nazwy projektu dla obszaru nazw w środowisku Visual C# pliku klasy Class1.cs, należy użyć następującej składni:
#region Using directives
using System;
using System.Collections.Generic;
using System.Text;
#endregion
namespace $safeprojectname$
{
public class Class1
{
public Class1()
{
}
}
}
W pliku .vstemplate dla szablonu projektu należy uwzględnić następujący kod XML podczas odwołania się do pliku Class1.cs:
<TemplateContent>
<ProjectItem ReplaceParameters="true">
Class1.cs
</ProjectItem>
...
</TemplateContent>