Udostępnij za pośrednictwem


Klasa ProvideLanguageCodeExpansionAttribute

Rejestruje obsługi języka dla wstawki kodu programu.

Hierarchia dziedziczenia

System.Object
  System.Attribute
    Microsoft.VisualStudio.Shell.RegistrationAttribute
      Microsoft.VisualStudio.Shell.ProvideLanguageCodeExpansionAttribute

Przestrzeń nazw:  Microsoft.VisualStudio.Shell
Zestaw:  Microsoft.VisualStudio.Shell.11.0 (w Microsoft.VisualStudio.Shell.11.0.dll)

Składnia

'Deklaracja
<ComVisibleAttribute(False)> _
<AttributeUsageAttribute(AttributeTargets.Class, AllowMultiple := True, Inherited := True)> _
Public NotInheritable Class ProvideLanguageCodeExpansionAttribute _
    Inherits RegistrationAttribute
[ComVisibleAttribute(false)]
[AttributeUsageAttribute(AttributeTargets.Class, AllowMultiple = true, Inherited = true)]
public sealed class ProvideLanguageCodeExpansionAttribute : RegistrationAttribute

Typ ProvideLanguageCodeExpansionAttribute uwidacznia następujące elementy członkowskie.

Konstruktorzy

  Nazwa Opis
Metoda publiczna ProvideLanguageCodeExpansionAttribute Inicjuje nowe wystąpienie ProvideLanguageCodeExpansionAttribute klasy.

Początek

Właściwości

  Nazwa Opis
Właściwość publiczna ForceCreateDirs Zwraca lub ustawia ciąg rozdzielany średnikami zawierający katalogu lub katalogów, które ma zostać utworzona.
Właściwość publiczna LanguageName Pobiera nazwę języka.
Właściwość publiczna LanguageServiceSid Pobiera identyfikator GUID usługi języka.
Właściwość publiczna SearchPaths Zwraca lub ustawia ciąg rozdzielany średnikami zawierający ścieżki domyślnej do wyszukiwania Urywki.
Właściwość publiczna ShowRoots Pobiera lub ustawia niezależnie od tego, czy powinny być wyświetlane korzenie wstawki kodu programu.
Właściwość publiczna TypeId Pobiera bieżące wystąpienie tego atrybutu. (Odziedziczone z RegistrationAttribute).

Początek

Metody

  Nazwa Opis
Metoda publiczna Equals Infrastruktura. Zwraca wartość, która wskazuje, czy to wystąpienie jest równa określonego obiektu. (Odziedziczone z Attribute).
Metoda publiczna GetHashCode Zwraca kod skrótu dla tego wystąpienia. (Odziedziczone z Attribute).
Metoda publiczna GetType Pobiera Type bieżącej instancji. (Odziedziczone z Object).
Metoda publiczna IsDefaultAttribute Gdy zastąpiony w klasie pochodnej, wskazuje, czy wartość to wystąpienie jest wartością domyślną dla klasy pochodnej. (Odziedziczone z Attribute).
Metoda publiczna Match Gdy zastąpiony w klasie pochodnej, zwraca wartość wskazującą, czy to wystąpienie jest równa określonego obiektu. (Odziedziczone z Attribute).
Metoda publiczna Register Tworzy wszystkie klucze rejestru i wpisy podaną przez konstruktora klasy. (Zastępuje RegistrationAttribute.Register(RegistrationAttribute.RegistrationContext)).
Metoda publiczna ToString Zwraca ciąg, który reprezentuje bieżącego obiektu. (Odziedziczone z Object).
Metoda publiczna Unregister Usuwa wszystkie klucze rejestru i wpisy podaną przez konstruktora klasy. (Zastępuje RegistrationAttribute.Unregister(RegistrationAttribute.RegistrationContext)).

Początek

Jawne implementacje interfejsu

  Nazwa Opis
Jawna implementacja interfejsuMetoda prywatna _Attribute.GetIDsOfNames Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłki. (Odziedziczone z Attribute).
Jawna implementacja interfejsuMetoda prywatna _Attribute.GetTypeInfo Pobiera informacje o typie dla obiektu, który można uzyskać informacji o typie dla interfejsu. (Odziedziczone z Attribute).
Jawna implementacja interfejsuMetoda prywatna _Attribute.GetTypeInfoCount Pobiera numer typu informacji interfejsów, że obiekt zawiera (0 lub 1). (Odziedziczone z Attribute).
Jawna implementacja interfejsuMetoda prywatna _Attribute.Invoke Zapewnia dostęp do właściwości i metod udostępnianych przez obiekt. (Odziedziczone z Attribute).

Początek

Uwagi

Ten atrybut zdefiniowane przez użytkownika (który jest specyficzny dla języka C#) jest używany do dostarczania informacji niezbędnych do rejestrowania usługi języka obsługę urywki kodu z Visual Studio.Wartości określone przez ten atrybut są przechowywane jako metadane w zestawie.Metadanych jest później wykorzystywany przez program, taki jak program regpkg.exe (część zestawu SDK VSIP) do tworzenia odpowiednich kluczy rejestru i zapisy, które informują Visual Studio o usłudze języka.

Wpisy rejestru dotkniętych ProvideLanguageCodeExpansionAttribute 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]

W przypadku gdy:

  • [X.Y] jest wersją Visual Studio, na przykład 8.0Exp.

  • [nazwa języka] to nazwa języka (jak określono w drugi parametr ProvideLanguageCodeExpansionAttribute konstruktora klasy).

  • [identyfikator zasobu Nazwa języka] jest Identyfikatorem zasobu Nazwa języka, który jest używany w celach wyświetlania i dlatego może być lokalizowany.

  • [ścieżka do pliku indeksu urywek] jest pełną ścieżką do pliku indeksu, który opisuje lokalizację Urywki.

  • [identyfikator języka] jest ciąg używany do oznaczania wszystkich urywki i urywki indeks pliku.Ciąg ten jest używany do kojarzenia zestaw urywki z usługą określonego języka.

  • [ścieżki do urywki] rozdzielany na colon naczepa listę ścieżek wyszukiwania Urywki, jeśli nie jest dostępny plik indeksu.

Ścieżki może zawierać zmienne zastępczych, które wskazują w miejscach takich jak zainstalowanego katalogu głównego dla Visual Studio i użytkownika Moja lokalizacja dokumentów.Zobacz Wsparcie dla wstawki kodu programu (w ramach pakietu zarządzanych) szczegóły tych podstawiania zmiennych.

Konstruktor klasy określa minimalne wymagane parametry.Klasa atrybutu user-defined obsługuje także opcjonalne parametry nazwane.Są one nazwane parametry określone w liście parametrów konstruktora po wymaganych parametrów.Wszystkie właściwości dla tej klasy, które obsługują zarówno get i set operatorów może być określona jako nazwany parametr.W przykładzie pokazano, jak nazwane parametry są używane.

Następujące atrybuty zdefiniowane przez użytkownika są używane dla usług językowych:

Atrybut

Opis

ProvideLanguageServiceAttribute

Rejestruje usługi języka z Visual Studio i określa, jakie funkcje są obsługiwane.

ProvideLanguageExtensionAttribute

Kojarzy rozszerzenie pliku z usługi języka.

ProvideLanguageEditorOptionPageAttribute

Określa właściwość węzła lub strony w oknie dialogowym Opcje specyficzne dla usługi języka.

ProvideLanguageCodeExpansionAttribute

Określa informacje o lokalizacji, do obsługi wstawki kodu programu w służbie językowej.

ProvideServiceAttribute

Rejestruje służbie językowej jako Visual Studio usługi.Wszystkie usługi świadczone w użyciu kodu zarządzanego ten atrybut.

Uwagi dotyczące implementacji

Ten atrybut klasy nie może być dziedziczona z, więc nie ma nic do wprowadzenia w życie.

Uwagi dotyczące wywoływania

Ten atrybut klasy jest typowo stosowany do podstawowej klasy VSPackage, chociaż może być wyświetlany na każdej klasy.Ten atrybut powinien występować tylko raz.

Przykłady

Ten przykład pokazuje, jak ten atrybut zdefiniowane przez użytkownika jest używana do rejestracji wsparcie dla wstawki kodu programu obsługi języka.

[!UWAGA]

Visual C#pozwala na formularzu skróconym atrybutu user-defined przez upuszczenie "Atrybutu" część nazwy.Tego formularza skróconego jest używany w tym i innymi przykładami całej tej klasy.

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
    {
    }
}

Bezpieczeństwo wątku

Wszystkie publiczne static (Shared w języku Visual Basic) elementy członkowskie tego typu są bezpieczne dla wątków. Wystąpienia elementów członkowskich nie dają gwarancji bezpieczeństwa wątków.

Zobacz też

Informacje

Przestrzeń nazw Microsoft.VisualStudio.Shell

Inne zasoby

Wsparcie dla wstawki kodu programu (w ramach pakietu zarządzanych)