ProvideLanguageCodeExpansionAttribute Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Registriert Sprachdienstunterstützung für Codeausschnitte.
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
- Vererbung
- Attribute
Beispiele
In diesem Beispiel wird gezeigt, wie dieses benutzerdefinierte Attribut verwendet wird, um die Unterstützung für Codeausschnitte für einen Sprachdienst zu registrieren.
Hinweis
Visual C# ermöglicht eine Kurzform eines benutzerdefinierten Attributs, indem der Teil "Attribut" des Namens gelöscht wird. Diese Kurzform wird in diesem und allen anderen Beispielen in dieser Klasse verwendet.
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
{
}
}
Hinweise
Dieses benutzerdefinierte Attribut (spezifisch für C#) wird verwendet, um Informationen bereitzustellen, die erforderlich sind, um die Unterstützung eines Sprachdiensts für Codeausschnitte bei Visual Studio zu registrieren. Die von diesem Attribut angegebenen Werte werden als Metadaten in der Assembly gespeichert. Diese Metadaten werden später von einem Programm wie regpkg.exe Programm (Teil des VSIP SDK) verwendet, um die entsprechenden Registrierungsschlüssel und Einträge zu erstellen, die Visual Studio über den Sprachdienst informieren.
Die von dem ProvideLanguageCodeExpansionAttribute betroffenen Registrierungseinträge finden Sie unter dem folgenden Registrierungsschlüssel:
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]
Hierbei gilt:
[X.Y] ist die Version von Visual Studio, z. B. 8.0Exp.
[Sprachname] ist der Name der Sprache (wie im zweiten Parameter für den ProvideLanguageCodeExpansionAttribute Klassenkonstruktor angegeben).
[Sprachnameressourcen-ID] ist die Ressourcen-ID des Sprachnamens, der für Anzeigezwecke verwendet wird und daher lokalisiert werden kann.
[Pfad zur Codeausschnittindexdatei] ist der vollständige Pfad zur Indexdatei, die den Speicherort der Codeausschnitte beschreibt.
[Sprachbezeichner] ist eine Zeichenfolge, die zum Markieren aller Codeausschnitte und der Codeausschnittindexdatei verwendet wird. Diese Zeichenfolge wird verwendet, um einem bestimmten Sprachdienst eine Reihe von Codeausschnitten zuzuordnen.
[Pfade zu Codeausschnitten] eine durch Semikolon getrennte Liste von Pfaden zum Suchen nach Codeausschnitten, wenn die Indexdatei nicht verfügbar ist.
Die Pfade können Ersetzungsvariablen enthalten, die auf Speicherorte wie den installierten Stamm für Visual Studio und den Speicherort "Eigene Dokumente" des Benutzers verweisen. Ausführliche Informationen zu diesen Ersetzungsvariablen finden Sie unter Unterstützung von Codeausschnitten in einem Legacy Language Service .
Der Klassenkonstruktor gibt die minimal erforderlichen Parameter an. Eine benutzerdefinierte Attributklasse unterstützt auch optionale benannte Parameter. Diese benannten Parameter werden in der Parameterliste des Konstruktors nach den erforderlichen Parametern angegeben. Alle Eigenschaften dieser Klasse, die sowohl get- als auch set-Operatoren unterstützen, können als benannter Parameter angegeben werden. Das Beispiel zeigt, wie benannte Parameter verwendet werden.
Die folgenden benutzerdefinierten Attribute werden für Sprachdienste verwendet:
attribute | BESCHREIBUNG |
---|---|
ProvideLanguageServiceAttribute | Registriert den Sprachdienst bei Visual Studio und gibt an, welche Features unterstützt werden. |
ProvideLanguageExtensionAttribute | Ordnet dem Sprachdienst eine Dateierweiterung zu. |
ProvideLanguageEditorOptionPageAttribute | Gibt einen Eigenschaftenknoten oder eine Seite für das Dialogfeld Optionen an, das für den Sprachdienst spezifisch ist. |
ProvideLanguageCodeExpansionAttribute | Gibt Standortinformationen an, um Codeausschnitte im Sprachdienst zu unterstützen. |
ProvideServiceAttribute | Registriert einen Sprachdienst als Visual Studio-Dienst. Alle Dienste, die in verwaltetem Code bereitgestellt werden, verwenden dieses Attribut. |
Hinweise für Vererber
Diese Attributklasse kann nicht von geerbt werden, sodass es nichts zu implementieren gibt.
Hinweise für Aufrufer
Diese Attributklasse wird in der Regel auf Ihre primäre VSPackage-Klasse angewendet, kann jedoch in jeder Klasse angezeigt werden. Dieses Attribut sollte nur einmal angezeigt werden.
Konstruktoren
ProvideLanguageCodeExpansionAttribute(Object, String, Int32, String, String) |
Initialisiert eine neue Instanz der ProvideLanguageCodeExpansionAttribute-Klasse. |
Eigenschaften
ForceCreateDirs |
Ermittelt oder bestimmt eine durch Semikolons getrennte Zeichenfolge, die das Verzeichnis oder die Verzeichnisse enthält, das bzw. die erstellt werden sollen. |
LanguageName |
Ruft den Namen der Sprache ab. |
LanguageServiceSid |
Ruft die GUID des Sprachdiensts ab. |
SearchPaths |
Ermittelt oder bestimmt eine durch Semikolons getrennte Zeichenfolge, die die Standardpfade für die Suche nach Ausschnitten enthält. |
ShowRoots |
Ruft ab oder legt fest, ob die Stammelemente der Codeausschnitte angezeigt werden. |
TypeId |
Überschreiben Sie die TypeID-Eigenschaft, damit die von RegistrationAttribute abgeleiteten Klassen mit System.ComponentModel.TypeDescriptor.GetAttributes(...) arbeiten können. Ein von diesem abgeleitetes Attribut muss diese Eigenschaft nur überschreiben, wenn es ein besseres Steuerelement für die Instanzen benötigt, die auf eine Klasse angewendet werden können. (Geerbt von RegistrationAttribute) |
Methoden
GetPackageRegKeyPath(Guid) |
Ruft den Registrierungspfad (relativ zum Registrierungsstamm der Anwendung) des VSPackages ab. (Geerbt von RegistrationAttribute) |
Register(RegistrationAttribute+RegistrationContext) |
Erstellt alle Registrierungsschlüssel und Einträge, wie vom Klassenkonstruktor angegeben. |
Unregister(RegistrationAttribute+RegistrationContext) |
Entfernt alle Registrierungsschlüssel und -einträge, wie vom Klassenkonstruktor angegeben. |