ProvideLanguageCodeExpansionAttribute, classe
Après-vente support de langage de registres pour des extraits de code.
Hiérarchie d'héritage
System.Object
System.Attribute
Microsoft.VisualStudio.Shell.RegistrationAttribute
Microsoft.VisualStudio.Shell.ProvideLanguageCodeExpansionAttribute
Espace de noms : Microsoft.VisualStudio.Shell
Assembly : Microsoft.VisualStudio.Shell.11.0 (dans Microsoft.VisualStudio.Shell.11.0.dll)
Syntaxe
'Déclaration
<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
Le type ProvideLanguageCodeExpansionAttribute expose les membres suivants.
Constructeurs
Nom | Description | |
---|---|---|
ProvideLanguageCodeExpansionAttribute | Initialise une nouvelle instance de la classe ProvideLanguageCodeExpansionAttribute. |
Début
Propriétés
Nom | Description | |
---|---|---|
ForceCreateDirs | Obtient ou définit une chaîne point-virgule- délimitée contenant le répertoire ou les répertoires qui doivent être créés. | |
LanguageName | Obtient le nom du langage. | |
LanguageServiceSid | Obtient GUID du service de langage. | |
SearchPaths | Obtient ou définit une chaîne point-virgule- délimitée contenant les chemins d'accès par défaut pour rechercher des extraits de code. | |
ShowRoots | Obtient ou définit si les racines des extraits de code doivent être montrées. | |
TypeId | Obtient l'instance actuel de cet attribut. (Hérité de RegistrationAttribute.) |
Début
Méthodes
Nom | Description | |
---|---|---|
Equals | Infrastructure. Retourne une valeur indiquant si cette instance équivaut à un objet spécifié. (Hérité de Attribute.) | |
Finalize | Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de nettoyage avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.) | |
GetHashCode | Retourne le code de hachage de cette instance. (Hérité de Attribute.) | |
GetPackageRegKeyPath | Obtient le chemin d'accès au Registre (par rapport à la racine de Registre de l'application) du VSPackage. (Hérité de RegistrationAttribute.) | |
GetType | Obtient le Type de l'instance actuelle. (Hérité de Object.) | |
IsDefaultAttribute | En cas de substitution dans une classe dérivée, indique si la valeur de cette instance est la valeur par défaut pour la classe dérivée. (Hérité de Attribute.) | |
Match | En cas de substitution dans une classe dérivée, retourne une valeur indiquant si cette instance équivaut à un objet spécifié. (Hérité de Attribute.) | |
MemberwiseClone | Crée une copie superficielle de l'objet Object actuel. (Hérité de Object.) | |
Register | Crée toutes les clés de Registre et entrées comme spécifiées par le constructeur de classe. (Substitue RegistrationAttribute.Register(RegistrationAttribute.RegistrationContext).) | |
ToString | Retourne une chaîne qui représente l'objet actuel. (Hérité de Object.) | |
Unregister | Supprime toutes les clés de Registre et entrées comme spécifiées par le constructeur de classe. (Substitue RegistrationAttribute.Unregister(RegistrationAttribute.RegistrationContext).) |
Début
Implémentations d'interface explicite
Nom | Description | |
---|---|---|
_Attribute.GetIDsOfNames | Mappe un jeu de noms avec un jeu correspondant d'identificateurs de dispatch. (Hérité de Attribute.) | |
_Attribute.GetTypeInfo | Récupère les informations de type pour un objet, qui peuvent être utilisées pour obtenir les informations de type d'une interface. (Hérité de Attribute.) | |
_Attribute.GetTypeInfoCount | Récupère le nombre d'interfaces d'informations de type fourni par un objet (0 ou 1). (Hérité de Attribute.) | |
_Attribute.Invoke | Fournit l'accès aux propriétés et aux méthodes exposées par un objet. (Hérité de Attribute.) |
Début
Remarques
Cet attribut défini par l'utilisateur (qui est spécifique au C-) est utilisé pour fournir des informations nécessaires pour enregistrer un prise en charge du service de langage des extraits de code avec Visual Studio.Les valeurs spécifiées par cet attribut sont enregistrées en tant que métadonnées dans l'assembly.Ce les métadonnées sont utilisées ultérieurement par un programme tel que le programme de regpkg.exe (une partie du SDK VSIP) pour créer les clés de Registre correspondantes et des entrées qui indiquent Visual Studio relatives au service de langage.
Les entrées du Registre affectées par ProvideLanguageCodeExpansionAttribute sont recherchées sous la clé de Registre suivante :
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]
Où :
[X.Y] est la version de Visual Studio, par exemple, 8.0Exp.
[nom de langue] est le nom du langage (comme spécifié dans le deuxième paramètre au constructeur de classe d'ProvideLanguageCodeExpansionAttribute).
[ID de ressource de nom de langue] est l'ID de ressource du nom de langue qui est utilisé pour l'affichage et peut donc être localisé.
[chemin d'accès au fichier d'index d'extrait de code] est le chemin complet au fichier d'index qui décrit l'emplacement des extraits de code.
[identificateur de langue] est une chaîne utilisée pour marquer tous les extraits de code et le fichier d'index d'extraits de code.Cette chaîne est utilisée pour associer un jeu d'extraits de code avec un service de langage particulier.
[chemins d'accès aux extraits de code] un liste délimitée par des points-virgules des chemins d'accès pour rechercher des extraits de code si le fichier d'index est non disponible.
Les chemins d'accès peuvent contenir les variables de substitution qui indiquent des emplacements tels que la racine installée pour Visual Studio et ma localisation des documents de l'utilisateur.Consultez Prise en charge des extraits de code (managed de package) pour plus d'informations sur ces variables de substitution.
Le constructeur de classe spécifie les paramètres requis minimum.Une classe d'attributs définie par l'utilisateur prend en charge également des paramètres nommés facultatifs.Ces paramètres nommés sont spécifiés dans la liste de paramètres du constructeur après les paramètres requis.Toutes les propriétés sur cette classe qui prennent en charge les deux commande get et opérateurs d'ensemble peuvent être spécifiées comme paramètre nommé.L'exemple montre comment des paramètres nommés sont utilisés.
Les attributs définis par l'utilisateur suivants sont utilisés pour les services linguistiques :
Attribut |
Description |
---|---|
Enregistre le service de langage avec Visual Studio et spécifie les fonctionnalités sont prises en charge. |
|
Associe une extension de fichier avec le service de langage. |
|
Spécifie un nœud ou une page de propriété pour le détail de boîte de dialogue d'options au service de langage. |
|
ProvideLanguageCodeExpansionAttribute |
Spécifie les informations d'emplacement pour prendre en charge des extraits de code dans le service de langage. |
Enregistre un service de langage comme un service de Visual Studio.Tous les services fournis en code managé utilisent cet attribut. |
Remarques à l'attention des implémenteurs
Cette classe d'attributs ne peut pas être héritée de il est rien à implémenter.
Remarques à l'attention des appelants
Cette classe d'attributs est en général appliquée à votre classe primaire d'un VSPackage, mais elle peut s'afficher sur n'importe quelle classe.Cet attribut doit apparaître qu'une seule fois.
Exemples
Cet exemple montre comment cet attribut défini par l'utilisateur est utilisé pour enregistrer la prise en charge des extraits de code pour un service de langage.
[!REMARQUE]
Visual C# permet d'un formulaire abrégée d'un attribut défini par l'utilisateur en supprimant la partie « attribut » du nom.Ce formulaire abrégée est utilisé dans cette et tous les autres exemples dans cette classe.
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
{
}
}
Sécurité des threads
Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.
Voir aussi
Référence
Microsoft.VisualStudio.Shell, espace de noms