ProvideLanguageCodeExpansionAttribute Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Rejestruje obsługę usługi językowej dla fragmentów kodu.
public ref class ProvideLanguageCodeExpansionAttribute sealed : Microsoft::VisualStudio::Shell::RegistrationAttribute
public ref class ProvideLanguageCodeExpansionAttribute sealed : Microsoft::VisualStudio::Shell::RegistrationAttribute
[System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=true, Inherited=true)]
[System.Runtime.InteropServices.ComVisible(false)]
public sealed class ProvideLanguageCodeExpansionAttribute : Microsoft.VisualStudio.Shell.RegistrationAttribute
[<System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=true, Inherited=true)>]
[<System.Runtime.InteropServices.ComVisible(false)>]
type ProvideLanguageCodeExpansionAttribute = class
inherit RegistrationAttribute
Public NotInheritable Class ProvideLanguageCodeExpansionAttribute
Inherits RegistrationAttribute
- Dziedziczenie
- Atrybuty
Przykłady
W tym przykładzie pokazano, jak ten atrybut zdefiniowany przez użytkownika jest używany do rejestrowania obsługi fragmentów kodu dla usługi językowej.
Uwaga
Język Visual C# umożliwia skróconą formę atrybutu zdefiniowanego przez użytkownika przez usunięcie części nazwy "Atrybut". Ta skrócona forma jest używana w tym i wszystkich innych przykładach w tej klasie.
using Microsoft.VisualStudio.Shell;
namespace MyLanguagePackage
{
internal class MyConstants
{
public const string languageName = "MyLanguage";
public const int languageNameResourceID = 106;
public const string languageIdentifier = "mylanguage";
public const string snippetsIndexFilePath = @"%InstallRoot%\MyLanguage\SnippetsIndex.xml";
}
[ProvideCodeExpansion(typeof(MyLanguageService),
MyConstants.languageName,
MyConstants.languageNameResourceID,
MyConstants.languageIdentifier,
MyConstants.snippetsIndexFilePath,
// Optional code expansion properties
SearchPaths = @"%InstallRoot%\MyLanguage\Snippets\%LCID%\Snippets;" +
@"\%MyDocs%\Code Snippets\MyLanguage\My Code Snippets";
)]
class MyLanguagePackage
{
}
}
Uwagi
Ten atrybut zdefiniowany przez użytkownika (specyficzny dla języka C#) służy do dostarczania informacji niezbędnych do zarejestrowania obsługi fragmentów kodu w programie Visual Studio. Wartości określone przez ten atrybut są przechowywane jako metadane w zestawie. Te metadane są później używane przez program, taki jak program regpkg.exe (część zestawu VSIP SDK), aby utworzyć odpowiednie klucze rejestru i wpisy informujące program Visual Studio o usłudze językowej.
Wpisy rejestru, których dotyczy ProvideLanguageCodeExpansionAttribute ten element, znajdują się w następującym kluczu rejestru:
HKEY_LOCAL_MACHINE\
SOFTWARE\
Microsoft\
VisualStudio\
[X.Y]\
Languages\
CodeExpansions\
[language name]\
(Default) = reg_sz: [Language Service GUID]
DisplayName = reg_sz: [language name resource ID]
IndexPath = reg_sz: [path to snippet index file]
Package = reg_sz: [Package GUID]
LangStringID = reg_sz: [language identifier]
Paths\
(Default) = reg_sz:
[language name] = reg_sz: [paths to snippets]
Gdzie:
[X.Y] to wersja programu Visual Studio, na przykład 8.0Exp.
[nazwa języka] to nazwa języka (określona w drugim parametrze konstruktora ProvideLanguageCodeExpansionAttribute klasy).
[identyfikator zasobu nazwy języka] to identyfikator zasobu nazwy języka używanej do celów wyświetlania i dlatego może być zlokalizowany.
[ścieżka do pliku indeksu fragmentu kodu] jest pełną ścieżką do pliku indeksu opisującego lokalizację fragmentów kodu.
[identyfikator języka] to ciąg służący do oznaczania wszystkich fragmentów kodu i pliku indeksu fragmentów kodu. Ten ciąg służy do skojarzenia zestawu fragmentów kodu z określoną usługą językową.
[ścieżki do fragmentów kodu] rozdzielana średnikami lista ścieżek do wyszukiwania fragmentów kodu, jeśli plik indeksu jest niedostępny.
Ścieżki mogą zawierać zmienne podstawienia wskazujące lokalizacje, takie jak zainstalowany katalog główny programu Visual Studio i lokalizacja Moje dokumenty użytkownika. Aby uzyskać szczegółowe informacje na temat tych zmiennych podstawienia, zobacz Obsługa fragmentów kodu w starszej wersji usługi językowej .
Konstruktor klasy określa minimalne wymagane parametry. Klasa atrybutów zdefiniowana przez użytkownika obsługuje również opcjonalne nazwane parametry. Te nazwane parametry są określone na liście parametrów konstruktora po wymaganych parametrach. Wszystkie właściwości tej klasy, które obsługują zarówno operatory get, jak i set, można określić jako nazwany parametr. W przykładzie pokazano, jak są używane nazwane parametry.
Następujące atrybuty zdefiniowane przez użytkownika są używane dla usług językowych:
Atrybut | Opis |
---|---|
ProvideLanguageServiceAttribute | Rejestruje usługę językową w programie Visual Studio i określa, jakie funkcje są obsługiwane. |
ProvideLanguageExtensionAttribute | Kojarzy rozszerzenie pliku z usługą językową. |
ProvideLanguageEditorOptionPageAttribute | Określa węzeł właściwości lub stronę okna dialogowego Opcje specyficzne dla usługi językowej. |
ProvideLanguageCodeExpansionAttribute | Określa informacje o lokalizacji do obsługi fragmentów kodu w usłudze językowej. |
ProvideServiceAttribute | Rejestruje usługę językową jako usługę Visual Studio. Wszystkie usługi dostarczone w kodzie zarządzanym używają tego atrybutu. |
Uwagi dotyczące dziedziczenia
Nie można dziedziczyć tej klasy atrybutów, więc nie ma nic do zaimplementowania.
Uwagi dotyczące wywoływania
Ta klasa atrybutów jest zwykle stosowana do podstawowej klasy VSPackage, chociaż może występować w dowolnej klasie. Ten atrybut powinien pojawić się tylko raz.
Konstruktory
ProvideLanguageCodeExpansionAttribute(Object, String, Int32, String, String) |
Inicjuje nowe wystąpienie klasy ProvideLanguageCodeExpansionAttribute. |
Właściwości
ForceCreateDirs |
Pobiera lub ustawia rozdzielany średnikami ciąg zawierający katalog lub katalogi, które należy utworzyć. |
LanguageName |
Pobiera nazwę języka. |
LanguageServiceSid |
Pobiera identyfikator GUID usługi językowej. |
SearchPaths |
Pobiera lub ustawia rozdzielany średnikami ciąg zawierający domyślne ścieżki do wyszukiwania fragmentów kodu. |
ShowRoots |
Pobiera lub ustawia, czy powinny być wyświetlane korzenie fragmentów kodu. |
TypeId |
Zastąp właściwość TypeID, aby umożliwić klasom pochodnym RegistrationAttribute pracować z elementem System.ComponentModel.TypeDescriptor.GetAttributes(...). Atrybut pochodzący z tej właściwości będzie musiał zastąpić tę właściwość tylko wtedy, gdy potrzebuje lepszej kontroli nad wystąpieniami, które można zastosować do klasy. (Odziedziczone po RegistrationAttribute) |
Metody
GetPackageRegKeyPath(Guid) |
Pobiera ścieżkę rejestru (względem katalogu głównego rejestru aplikacji) pakietu VSPackage. (Odziedziczone po RegistrationAttribute) |
Register(RegistrationAttribute+RegistrationContext) |
Tworzy wszystkie klucze rejestru i wpisy określone przez konstruktora klasy. |
Unregister(RegistrationAttribute+RegistrationContext) |
Usuwa wszystkie klucze rejestru i wpisy określone przez konstruktora klasy. |