Condividi tramite


Classe ProvideLanguageCodeExpansionAttribute

Registra il supporto del servizio di linguaggio frammenti di codice.

Gerarchia di ereditarietà

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

Spazio dei nomi:  Microsoft.VisualStudio.Shell
Assembly:  Microsoft.VisualStudio.Shell.11.0 (in Microsoft.VisualStudio.Shell.11.0.dll)

Sintassi

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

Il tipo ProvideLanguageCodeExpansionAttribute espone i seguenti membri.

Costruttori

  Nome Descrizione
Metodo pubblico ProvideLanguageCodeExpansionAttribute Inizializza una nuova istanza della classe di ProvideLanguageCodeExpansionAttribute .

In alto

Proprietà

  Nome Descrizione
Proprietà pubblica ForceCreateDirs Ottiene o imposta una stringa delimitata da punti e virgola contenente la directory o directory che devono essere create.
Proprietà pubblica LanguageName Ottiene il nome del linguaggio.
Proprietà pubblica LanguageServiceSid Ottiene il GUID del servizio di linguaggio.
Proprietà pubblica SearchPaths Ottiene o imposta una stringa delimitata da punti e virgola contenente percorsi predefiniti per trovare i frammenti.
Proprietà pubblica ShowRoots Ottiene o imposta indipendentemente dal fatto che le radici dei frammenti di codice devono essere lette.
Proprietà pubblica TypeId Ottiene l'istanza corrente dell'attributo. (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 Una volta sottoposto a override in una classe derivata, indica se il valore di questa istanza è il valore predefinito per la classe derivata. (Ereditato da Attribute)
Metodo pubblico Match Una volta 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 Crea tutte le chiavi del Registro di sistema e voci come specificato dal costruttore della classe. (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 Rimuove tutte chiavi del Registro di sistema e voci come specificato dal costruttore della classe. (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 sui tipi per un oggetto, che può essere utilizzato per ottenere informazioni sul tipo per un'interfaccia. (Ereditato da Attribute)
Implementazione esplicita dell'interfacciaMetodo privato _Attribute.GetTypeInfoCount Recupera il numero di interfacce di informazioni sui tipi che un oggetto garantisce (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

Questo attributo definito dall'utente specifico a c#) viene utilizzato per fornire informazioni necessarie per registrare un supporto del servizio di linguaggio frammenti di codice con Visual Studio.I valori specificati dall'attributo sono archiviati come metadati nell'assembly.Questi metadati successivamente vengono utilizzati da un programma come programma di regpkg.exe (parte di VSIP SDK) per creare chiavi del Registro di sistema e le voci corrispondenti che indichino Visual Studio sul servizio di linguaggio.

Le voci del Registro di sistema interessate da ProvideLanguageCodeExpansionAttribute disponibili in seguente chiave del Registro di sistema:

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]

dove:

  • [X.Y] è la versione di Visual Studio, ad esempio, 8.0Exp.

  • [nome della lingua] è il nome del linguaggio (come specificato nel secondo parametro al costruttore della classe di ProvideLanguageCodeExpansionAttribute ).

  • [ID di risorsa del nome del linguaggio]ID di risorsa del nome del linguaggio utilizzato per la visualizzazione e pertanto può essere localizzato.

  • [percorso del file di indice del frammento] è il percorso completo del file di indice che specifica la posizione dei frammenti.

  • [identificatore del linguaggio] è una stringa utilizzata per contrassegnare i frammenti e il file di indice dei frammenti.Questa stringa viene utilizzata per associare un set di frammenti con un servizio di linguaggio particolare.

  • [percorsi dei frammenti] un elenco delimitato da punti e virgola contenente percorsi da trovare i frammenti se il file di indice non è disponibile.

I percorsi possono contenere variabili di sostituzione che indicano le posizioni come radice installata per Visual Studio e dell'ubicazione documenti dell'utente.Vedere Supporto dei frammenti di codice (managed package Framework) per informazioni dettagliate su queste variabili di sostituzione.

il costruttore di classe specifica i parametri obbligatori minimi.Una classe Attribute definite dall'utente supporta anche i parametri denominati facoltativi.Questi parametri denominati sono specificati nell'elenco di parametri del costruttore dopo i parametri necessari.Tutte le proprietà della classe che supportano sia la funzione e impostare gli operatori possono essere specificate come parametro denominato.L'esempio mostra come parametri denominati vengono utilizzati.

I seguenti attributi definiti dall'utente vengono utilizzati per i servizi di linguaggio:

attributo

descrizione

ProvideLanguageServiceAttribute

registra il servizio di linguaggio con Visual Studio e specifica che funzionalità supportate.

ProvideLanguageExtensionAttribute

Associare un'estensione di file al servizio di linguaggio.

ProvideLanguageEditorOptionPageAttribute

Specifica un nodo o una pagina delle proprietà per la finestra di dialogo Opzioni specifiche del servizio di linguaggio.

ProvideLanguageCodeExpansionAttribute

Specifica le informazioni sul percorso per supportare i frammenti di codice nel servizio di linguaggio.

ProvideServiceAttribute

Registra un servizio di linguaggio come Visual Studio servizio.Tutti i servizi forniti nel codice gestito utilizzano questo attributo.

Note per gli implementatori

Questa classe Attribute non può essere ereditata da così esiste alcuna implementazione.

Note per i chiamanti

Questa classe Attribute in genere viene applicato alla classe primaria di package VS, sebbene possa essere visualizzati in qualsiasi classe.Questo attributo deve essere visualizzato solo una volta.

Esempi

In questo esempio viene illustrato come questo attributo definito dall'utente viene utilizzato per registrare il supporto dei frammenti di codice per un servizio di linguaggio.

[!NOTA]

Visual C# consente di utilizzare una forma abbreviata di un attributo definito dall'utente rilasciando la parte “attributo„ del nome.Questa forma abbreviata è utilizzato in questo e tutti gli altri esempi di questo comportamento.

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

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.Shell

Altre risorse

Supporto dei frammenti di codice (managed package Framework)