Partager via


ProvideBindingPathAttribute, classe

Cet attribut permet les assemblys dans votre package ou extension de Visual Studio à utiliser par d'autres packages et extensions.Il ajoute le répertoire où votre package est installé à sondant Visual Studio la liste, qui est utilisée pour résoudre des références d'assembly.

Hiérarchie d'héritage

System.Object
  System.Attribute
    Microsoft.VisualStudio.Shell.RegistrationAttribute
      Microsoft.VisualStudio.Modeling.Shell.ProvideBindingPathAttribute

Espace de noms :  Microsoft.VisualStudio.Modeling.Shell
Assembly :  Microsoft.VisualStudio.Modeling.Sdk.Shell.11.0 (dans Microsoft.VisualStudio.Modeling.Sdk.Shell.11.0.dll)

Syntaxe

'Déclaration
<AttributeUsageAttribute(AttributeTargets.Class, AllowMultiple := True, Inherited := True)> _
Public NotInheritable Class ProvideBindingPathAttribute _
    Inherits RegistrationAttribute
[AttributeUsageAttribute(AttributeTargets.Class, AllowMultiple = true, Inherited = true)]
public sealed class ProvideBindingPathAttribute : RegistrationAttribute

Le type ProvideBindingPathAttribute expose les membres suivants.

Constructeurs

  Nom Description
Méthode publique ProvideBindingPathAttribute

Début

Propriétés

  Nom Description
Propriété publique SubPath Un Sous-chemin facultatif à l'ensemble après $PackageFolder$.Cela doit être utilisé si les assemblys à détecter résident dans un répertoire différent que le fichier de pkgdef.
Propriété publique TypeId (Hérité de RegistrationAttribute.)

Début

Méthodes

  Nom Description
Méthode publique Equals Infrastructure. Retourne une valeur indiquant si cette instance équivaut à un objet spécifié. (Hérité de Attribute.)
Méthode publique GetHashCode Retourne le code de hachage de cette instance. (Hérité de Attribute.)
Méthode publique GetType Obtient le Type de l'instance actuelle. (Hérité de Object.)
Méthode publique 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.)
Méthode publique 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.)
Méthode publique Register Enregistrez le chemin d'accès composant (ou éventuellement un Sub- chemin d'accès du chemin d'accès composant) comme chemin d'accès supplémentaire que le gestionnaire d'assembly dans Visual Studio sondera lorsque tentant de résoudre des assemblys.Appelé lorsque le package est installé. (Substitue RegistrationAttribute.Register(RegistrationAttribute.RegistrationContext).)
Méthode publique ToString Retourne une chaîne qui représente l'objet actif. (Hérité de Object.)
Méthode publique Unregister Annulez l'enregistrement le chemin d'accès composant comme chemin d'accès de liaison.Appelé lorsque le package est désinstallé. (Substitue RegistrationAttribute.Unregister(RegistrationAttribute.RegistrationContext).)

Début

Implémentations d'interface explicite

  Nom Description
Implémentation d'interface expliciteMéthode privée _Attribute.GetIDsOfNames Mappe un jeu de noms avec un jeu correspondant d'identificateurs de dispatch. (Hérité de Attribute.)
Implémentation d'interface expliciteMéthode privée _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.)
Implémentation d'interface expliciteMéthode privée _Attribute.GetTypeInfoCount Récupère le nombre d'interfaces d'informations de type fourni par un objet (0 ou 1). (Hérité de Attribute.)
Implémentation d'interface expliciteMéthode privée _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

Notes

[!REMARQUE]

Ces informations s'appliquent à Visual Studio 2010.Une autre approche peut être fournie dans des versions finales ultérieures.

Si vous souhaitez les assemblys dans votre package ou extension pour être visible par d'autres extensions, vous devez appliquer cet attribut à votre classe de package ou à votre assembly.Par exemple :

[ProvideBindingPath] 
public class MyVsPackage : Microsoft.VisualStudio.Shell.Package 
{ ... }

Si vous utilisez la visualisation et modéliser le Kit de développement logiciel pour créer un langage spécifique au domaine, (DSL) l'attribut est automatiquement appliqué dans DslPackage\Package.cs.

Si vous ne générez pas un langage spécifique à un domaine, comprenez le fichier suivant dans votre projet :

%VSSDKInstallDir%\VisualStudioIntegration\Common\Source\CSharp\RegistrationAttributes\ProvideBindingPathAttribute.cs

Si les assemblys de votre package sont dans un sous-répertoire relatif au fichier d'.pkgdef, vous pouvez utiliser cette variante :

[ProvideBindingPath(SubPath="SubFolder1")] 
public class MyPackage : Microsoft.VisualStudio.Shell.Package 
{ ... }

Vous pouvez utiliser le plusieurs attribut d'ProvideBindingPath si vous souhaitez spécifier plusieurs répertoires.

Mise en gardeAttention

Comme cet attribut étend la liste de dossiers où Visual Studio recherche des assemblys, vous pouvez remarquer un déplacement des performances si vous installez beaucoup de packages qui ont cet attribut.

Comment l'attribut de chemin d'accès liaison de package fonctionne

Cet attribut génère une entrée dans le fichier d'.pkgdef de votre package, que vous pouvez rechercher dans le dossier de génération.Cela crée ensuite une entrée dans le Registre lorsque votre package est installé sur un ordinateur cible.L'entrée du Registre fournit un chemin d'accès qui doit être détecté pour des assemblys candidats lorsque d'autres assemblys sont chargés.

Par exemple, l'entrée d'.pkgdef se présente comme suit :

[$RootKey$\BindingPaths\votre package GUID]"$PackageFolder$"=""

Lorsque le package est installé sur un ordinateur cible, une entrée du Registre est ajoutée dans HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0_Config\BindingPaths\votre package GUID.L'entrée comprend un attribut de chaîne qui indique le dossier d'installation du package.

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.Modeling.Shell, espace de noms

Package

Autres ressources

Déploiement de solutions de langage spécifique à un domaine