Condividi tramite


Classe ProvideBindingPathAttribute

Questo attributo consente agli assembly presenti nel pacchetto o nell'estensione di Visual Studio di essere utilizzati da altri pacchetti ed estensioni. Aggiunge la directory in cui il pacchetto è installato all'elenco Visual Studio, utilizzato per risolvere i riferimenti all'assembly.

Gerarchia di ereditarietà

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

Spazio dei nomi:  Microsoft.VisualStudio.Modeling.Shell
Assembly:  Microsoft.VisualStudio.Modeling.Sdk.Shell.12.0 (in Microsoft.VisualStudio.Modeling.Sdk.Shell.12.0.dll)

Sintassi

'Dichiarazione
<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

Il tipo ProvideBindingPathAttribute espone i seguenti membri.

Costruttori

  Nome Descrizione
Metodo pubblico ProvideBindingPathAttribute

In alto

Proprietà

  Nome Descrizione
Proprietà pubblica SubPath Sottopercorso facoltativo da impostare dopo $PackageFolder$.Deve essere utilizzata se gli assembly da esaminare si trovano in una directory diversa rispetto al file pkgdef.
Proprietà pubblica TypeId (Ereditato da RegistrationAttribute)

In alto

Metodi

  Nome Descrizione
Metodo pubblico Equals Infrastruttura. Restituisce un valore che indica se l'istanza è uguale a un oggetto specificato. (Ereditato da Attribute)
Metodo pubblico GetHashCode Restituisce il codice hash per l'istanza. (Ereditato da Attribute)
Metodo pubblico GetType Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object)
Metodo pubblico IsDefaultAttribute Quando è sottoposto a override in una classe derivata, indica se il valore di questa istanza è il valore predefinito della classe derivata. (Ereditato da Attribute)
Metodo pubblico Match Quando è sottoposto a override in una classe derivata, restituisce un valore che indica se questa istanza equivale a un oggetto specificato. (Ereditato da Attribute)
Metodo pubblico Register Registrare il percorso componente (o facoltativamente un sottopercorso del percorso componente) come percorso aggiuntivo che il gestore di assembly in Visual Studio controllerà durante il tentativo di risolvere gli assembly.Chiamato quando viene installato il pacchetto. (Esegue l'override di RegistrationAttribute.Register(RegistrationAttribute.RegistrationContext)).
Metodo pubblico ToString Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object)
Metodo pubblico Unregister Annulla la registrazione del percorso componente come percorso di associazione.È stato chiamato quando il pacchetto è stato disinstallato. (Esegue l'override di RegistrationAttribute.Unregister(RegistrationAttribute.RegistrationContext)).

In alto

Implementazioni esplicite dell'interfaccia

  Nome Descrizione
Implementazione esplicita dell'interfacciaMetodo privato _Attribute.GetIDsOfNames Esegue il mapping di un set di nomi a un set corrispondente di ID dispatch. (Ereditato da Attribute)
Implementazione esplicita dell'interfacciaMetodo privato _Attribute.GetTypeInfo Recupera le informazioni sul tipo relative a un oggetto, che possono essere utilizzate per ottenere informazioni sul tipo relative a un'interfaccia. (Ereditato da Attribute)
Implementazione esplicita dell'interfacciaMetodo privato _Attribute.GetTypeInfoCount Recupera il numero delle interfacce di informazioni di tipo fornite da un oggetto (0 o 1). (Ereditato da Attribute)
Implementazione esplicita dell'interfacciaMetodo privato _Attribute.Invoke Fornisce l'accesso a proprietà e metodi esposti da un oggetto. (Ereditato da Attribute)

In alto

Note

Nota

Queste informazioni sono applicabili a Visual Studio 2010.Un metodo alternativo potrebbe essere fornito nelle versioni future.

Se si desidera che gli assembly nel pacchetto o estensione per essere visibile ad altre estensioni, è necessario applicare questo attributo alla classe del pacchetto o all'assembly. Esempio:

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

Se si utilizza l'sdk di visualizzazione e modellazione per creare un linguaggio specifico di dominio (DSL), l'attributo viene applicato automaticamente in DslPackage\Package.cs.

Se non si sta compilando un linguaggio specifico di dominio, includere il seguente file nel progetto:

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

Se gli assembly del pacchetto si trovano in una sottodirectory del file di .pkgdef, è possibile utilizzare la variante:

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

È possibile utilizzare più di un attributo di ProvideBindingPath se si desidera specificare diverse directory.

Avviso

Poiché questo attributo consente di estendere l'elenco delle cartelle in cui Visual Studio cerca gli assembly, è possibile notare un calo delle prestazioni se si installa molti pacchetti che hanno questo attributo.

Il funzionamento obbligatori di attributo Path del pacchetto

Questo attributo viene generata una voce nel file di .pkgdef del pacchetto, disponibile nella cartella di compilazione. Questa operazione consente a sua volta crea una voce nel Registro di sistema quando il pacchetto viene installato nel computer di destinazione. La voce del Registro di sistema viene fornito un percorso che deve essere sondatoe per gli assembly del candidato quando altri assembly vengono caricati.

Ad esempio, la voce di .pkgdef è simile alla seguente:

[$RootKey$\BindingPaths\il pacchetto GUID]"$PackageFolder$"=""

Quando il pacchetto viene installato nel computer di destinazione, una voce del Registro di sistema aggiunte in HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0_Config\BindingPaths\il pacchetto GUID. La voce comprende un attributo di stringa che indica la cartella di installazione del pacchetto.

Codice thread safe

Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.

Vedere anche

Riferimenti

Spazio dei nomi Microsoft.VisualStudio.Modeling.Shell

Package

Altre risorse

Distribuzione di soluzioni per un linguaggio specifico di dominio