ProvideLanguageCodeExpansionAttribute Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Registra il supporto del servizio di linguaggio per frammenti di codice.
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
- Ereditarietà
- Attributi
Esempio
In questo esempio viene illustrato come viene usato questo attributo definito dall'utente per registrare il supporto per i frammenti di codice per un servizio di linguaggio.
Nota
Visual C# consente una forma abbreviata di un attributo definito dall'utente eliminando la parte "Attribute" del nome. Questo formato abbreviato viene usato in questo e in tutti gli altri esempi in questa 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
{
}
}
Commenti
Questo attributo definito dall'utente (specifico di C#) viene usato per fornire informazioni necessarie per registrare il supporto di un servizio di linguaggio per i frammenti di codice con Visual Studio. I valori specificati da questo attributo vengono archiviati come metadati nell'assembly. Questi metadati vengono usati successivamente da un programma, ad esempio regpkg.exe programma (parte di VSIP SDK) per creare le chiavi e le voci del Registro di sistema corrispondenti che indicano a Visual Studio il servizio di linguaggio.
Le voci del Registro di sistema interessate da ProvideLanguageCodeExpansionAttribute sono disponibili nella 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.
[language name] è il nome della lingua (come specificato nel secondo parametro per il costruttore della ProvideLanguageCodeExpansionAttribute classe).
[ID risorsa nome lingua] è l'ID risorsa del nome della lingua usato a scopo di visualizzazione e può quindi essere localizzato.
[percorso del file di indice del frammento di codice] è il percorso completo del file di indice che descrive il percorso dei frammenti di codice.
[identificatore di lingua] è una stringa usata per contrassegnare tutti i frammenti di codice e il file di indice dei frammenti di codice. Questa stringa viene usata per associare un set di frammenti di codice a un determinato servizio di linguaggio.
[percorsi ai frammenti di codice] un elenco delimitato da punti e virgola di percorsi in cui cercare frammenti di codice se il file di indice non è disponibile.
I percorsi possono contenere variabili di sostituzione che puntano a percorsi quali la radice installata per Visual Studio e il percorso Documenti personali dell'utente. Per informazioni dettagliate su queste variabili di sostituzione, vedere Supporto per frammenti di codice in un servizio di linguaggio legacy .
Il costruttore della classe specifica i parametri minimi necessari. Una classe di attributi definita dall'utente supporta anche parametri denominati facoltativi. Questi parametri denominati vengono specificati nell'elenco dei parametri del costruttore dopo i parametri necessari. Tutte le proprietà di questa classe che supportano gli operatori get e set possono essere specificate come parametro denominato. Nell'esempio viene illustrato come vengono usati i parametri denominati.
Per i servizi linguistici vengono usati gli attributi definiti dall'utente seguenti:
Attributo | Descrizione |
---|---|
ProvideLanguageServiceAttribute | Registra il servizio di linguaggio con Visual Studio e specifica le funzionalità supportate. |
ProvideLanguageExtensionAttribute | Associa un'estensione di file al servizio di linguaggio. |
ProvideLanguageEditorOptionPageAttribute | Specifica un nodo o una pagina delle proprietà per la finestra di dialogo Opzioni specifica per il servizio di linguaggio. |
ProvideLanguageCodeExpansionAttribute | Specifica le informazioni sulla posizione per supportare frammenti di codice nel servizio di linguaggio. |
ProvideServiceAttribute | Registra un servizio linguistico come servizio di Visual Studio. Tutti i servizi forniti nel codice gestito usano questo attributo. |
Note per gli eredi
Questa classe di attributi non può essere ereditata da, pertanto non è necessario implementare alcun elemento.
Note per i chiamanti
Questa classe di attributi viene in genere applicata alla classe VSPackage primaria, anche se può essere visualizzata in qualsiasi classe. Questo attributo deve essere visualizzato una sola volta.
Costruttori
ProvideLanguageCodeExpansionAttribute(Object, String, Int32, String, String) |
Inizializza una nuova istanza della classe ProvideLanguageCodeExpansionAttribute. |
Proprietà
ForceCreateDirs |
Ottiene o imposta una stringa delimitata da punti e virgola contenente la directory o le directory che devono essere create. |
LanguageName |
Ottiene il nome del linguaggio. |
LanguageServiceSid |
Ottiene il GUID del servizio di linguaggio. |
SearchPaths |
Ottiene o imposta una stringa delimitata da punti e virgola contenente i percorsi predefiniti per la ricerca dei frammenti. |
ShowRoots |
Ottiene o imposta un valore che indica se le radici dei frammenti di codice devono essere visualizzate. |
TypeId |
Eseguire l'override della proprietà TypeID per consentire alle classi derivate RegistrationAttribute di usare System.ComponentModel.TypeDescriptor.GetAttributes(...). Un attributo derivato da questo deve eseguire l'override di questa proprietà solo se necessita di un controllo migliore sulle istanze che possono essere applicate a una classe. (Ereditato da RegistrationAttribute) |
Metodi
GetPackageRegKeyPath(Guid) |
Ottiene il percorso del Registro di sistema (relativo alla radice del Registro di sistema dell'applicazione) del pacchetto VS. (Ereditato da RegistrationAttribute) |
Register(RegistrationAttribute+RegistrationContext) |
Crea tutte le chiavi del Registro di sistema e le voci specificate dal costruttore di classe. |
Unregister(RegistrationAttribute+RegistrationContext) |
Rimuove tutte le chiavi del Registro di sistema e le voci specificate dal costruttore di classe. |