Freigeben über


ProvideProfileAttribute Klasse

Definition

Wenden Sie dieses Attribut auf unabhängige Objekte an, die zum Implementieren der Visual Studio-Einstellungsunterstützung von VSPackage verwendet werden.

public ref class ProvideProfileAttribute sealed : Microsoft::VisualStudio::Shell::RegistrationAttribute
public ref class ProvideProfileAttribute sealed : Microsoft::VisualStudio::Shell::RegistrationAttribute
[System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=true, Inherited=true)]
public sealed class ProvideProfileAttribute : Microsoft.VisualStudio.Shell.RegistrationAttribute
[<System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=true, Inherited=true)>]
type ProvideProfileAttribute = class
    inherit RegistrationAttribute
Public NotInheritable Class ProvideProfileAttribute
Inherits RegistrationAttribute
Vererbung
ProvideProfileAttribute
Attribute

Beispiele

Im folgenden Beispiel werden zwei Instanzen von ProvideProfileAttribute auf eine VSPackage-Implementierung angewendet, um die beiden Klassen als Visual Studio-Einstellungsunterstützung für das von der -Klasse MyPackageimplementierte VSPackage zu definieren.

  1. Da die Implementierung der Seite mit dem Namen "DesignerOptionsPage" von DialogPageabgeleitet ist, kann sie Visual Studio-Einstellungen und Tools-Optionsseiten unterstützen und ist registriert, indem sie beides bereitstellt:

    • Eine Implementierung einer Seite Tools-Optionen, die über die instance ProvideOptionPageAttributeregistriert wird. Weitere Informationen zur Unterstützung von Seiten für Toolsoptionen finden Sie unter ProvideOptionPageAttribute.

    • Eine Implementierung, die das Beibehalten des Zustands der Seiten Tools-Optionen unterstützt, was durch das letzte Argument für den ProvideProfileAttribute Konstruktor angegeben wird.

  2. Die Klasse mit dem Namen "PersistedDesignerState" wird registriert, indem nur Unterstützung für Visual Studio-Einstellungen bereitgestellt wird, indem Sie die verbleibenden Zustandsinformationen des VSPackage namens "MyPackage" speichern und abrufen, indem Sie implementieren IProfileManager.

using Microsoft.VisualStudio.Shell;  
namespace Example  
{  
[DefaultRegistryRoot("Software\\Microsoft\\VisualStudio\\8.0")]   
[ProvideOptionPage(typeof(DesignerOptionsPage), "MyDesigner", "OptionPage", 1000, 1001, true)]   
[ProvideProfileAttribute(typeof(DesignerOptionsPage), "MyDesigner", "OptionPage", 1002, 1003, true)]  
[ProvideProfileAttribute(typeof(PersistCurrentDesign), "MyDesigner","CurrentDesign", 1004, 1005, false)]  
[Guid("XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX")]  
public class MyPackage : Package  
{  
//Implementation here  
}  

[Guid("YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY")]  
internal class DesignerOptionsPage: DialogPage {  
//Implementation here  
}  

[Guid("ZZZZZZZZ-ZZZZ-ZZZZ-ZZZZ-ZZZZZZZZZZZZ")]  
internal class PersistCurrentDesign: IProfileManager {  
//Implementation here  
}  

Hinweise

Hinweise für Aufrufer

Wenden Sie das Attribut auf Klassen an, die ProvideProfileAttribute ein VSPackage implementieren, wenn es eine Klasse gibt, die Visual Studio-Einstellungsfunktionen für das VSPackage implementiert, sodass VSPackage-Statusinformationen gespeichert und abgerufen werden können.

Hinweis

Klassen, die IProfileManagerimplementieren, müssen auch implementieren IComponent, was durch Ableiten der -Klasse von Componenterfolgen kann.

Attributkontext

Gilt für: VSPackages verwenden den Visual Studio-Einstellungsmechanismus über Klassen, die die IProfileManager Schnittstellen oder DialogPage implementieren.
Wiederholbar Yes
Erforderliche Attribute DefaultRegistryRootAttribute, Hinweis Wenn die Klasse, die Visual Studio-Einstellungen implementiert, auch eine Seite Tools-Optionen bereitstellt, ProvideOptionPageAttribute ist ebenfalls erforderlich.
Ungültige Attribute Keine

Hinweise für Implementierer

Dieses Attribut wird nur zu Registrierungszwecken verwendet und wirkt sich nicht auf das Laufzeitverhalten aus.

ProvideProfileAttributeregistriert eine Klasse, die implementiert oder DialogPage als Unterstützung für das Beibehalten eines Teils oder des gesamten VSPackage-Zustands über den Visual Studio-Einstellungsmechanismus bereitstelltIProfileManager. Die zustandsinformationen, die von der implementierenden Klasse beibehalten werden, werden als Visual Studio-Einstellungskategorie bezeichnet, und ihr definierender Eintrag in der Registrierung wird als Benutzerdefinierter Einstellungspunkt bezeichnet.

Wenn ein Benutzer im Menü Extras den Befehl Import/Export Settings auswählt, um Visual Studio-Einstellungen zu speichern, werden die von registrierten ProvideProfileAttribute Klassen von der IDE instanziiert und zum Speichern der Einstellungen verwendet.

Aus diesem Gründen:

  • Die Unterstützung von Visual Studio-Einstellungen sollte für ein eigenes Objekt und nicht für das VSPackage selbst implementiert werden.

  • Eine Klasse, die Visual Studio-Einstellungen implementiert, unterstützt möglicherweise nur eine Visual Studio-Einstellungskategorie, wie sie im Benutzerdefinierten Einstellungspunkt definiert ist.

Ein einzelnes VSPackage unterstützt jedoch möglicherweise mehrere Visual Studio-Einstellungskategorien, die mehrere benutzerdefinierte Einstellungspunkte definiert sind, solange:

  • Jede Visual Studio-Einstellungskategorie wird in einer separaten Klasse implementiert.

  • Jede Klasse, die Visual Studio-Einstellungen implementiert, wird als Unterstützung des VSPackage durch ihre eigene instance von ProvideProfileAttributeregistriert.

    Hinweis

    Dies unterscheidet sich von den COM-basierten Implementierungen, bei denen eine Klasse, die Visual Studio-Einstellungen implementiert, möglicherweise mehrere benutzerdefinierte Einstellungspunkte unterstützt.

Eine instance von ProvideProfileAttribute:

  • Identifiziert eindeutig die Visual Studio-Einstellungskategorie eines Benutzerdefinierten Einstellungspunkts mit der GUID, die von der Klasse abgerufen wird, die Type Visual Studio-Einstellungen implementiert.

  • Legt den Namen einer Visual Studio-Einstellungskategorie fest, sowohl den kanonischen, nicht zugeordneten Namen, der in Registrierungseinträgen verwendet wird, als auch die lokalisierten Namensressourcen.

  • Gibt an, ob die Visual Studio-Einstellungen, die die Implementierung der ProvideProfileAttribute Klasse unterstützen, eine Seite Tools-Optionen unterstützt (weitere Informationen zur Seite unterstützende Toolsoptionen finden Sie unter Optionenseiten).

Weitere Informationen zum Erstellen und Anwenden von Instanzen von ProvideProfileAttributefinden Sie im folgenden Beispiel und ProvideProfileAttribute.

Konstruktoren

ProvideProfileAttribute(Type, String, String, Int16, Int16, Boolean)

Initialisiert eine neue instance von ProvideProfileAttribute.

Eigenschaften

AlternateParent

Ruft den Namen einer anderen Kategorie im Profil ab oder legt diesen fest.

CategoryName

Ruft den kanonischen nicht zugeordneten Namen der Visual Studio-Einstellungskategorie ab.

CategoryResourceID

Ruft die Ressourcen-ID des Namens für eine Visual Studio-Einstellungskategorie ab.

DescriptionResourceID

Ruft die lokalisierte Ressourcen-ID der Beschreibung dieser Seite des Profils ab.

GroupName

Ruft den nicht lokalisierten Name dieser Gruppe ab.

GroupResourceID

Ruft die lokalisierte Ressourcen-ID der Gruppe ab, zu der diese Seite gehört, oder legt diese fest.

IsToolsOptionPage

Ruft ab, ob es sich auch um eine Seite "Extrasoptionen" handelt.

MigrationType

Legt die Migrationsaktion für diese Kategorie fest.

ObjectName

Ruft den kanonischen, nicht lokalisierten Namen dieser Seite im Profil ab.

ObjectNameResourceID

Ruft die lokalisierte Ressourcen-ID des Namens dieser Seite im Profil ab.

ObjectType

Ruft den Typ der Seite ab.

ResourcePackageGuid

Ruft den GUID für ein Paket ab oder legt diesen fest, welches die Ressourcenzeichenfolgen bereitstellt.

TypeId

Überschreiben Sie die TypeID-Eigenschaft, damit die von RegistrationAttribute abgeleiteten Klassen mit System.ComponentModel.TypeDescriptor.GetAttributes(...) arbeiten können. Ein von diesem abgeleitetes Attribut muss diese Eigenschaft nur überschreiben, wenn es ein besseres Steuerelement für die Instanzen benötigt, die auf eine Klasse angewendet werden können.

(Geerbt von RegistrationAttribute)

Methoden

GetPackageRegKeyPath(Guid)

Ruft den Registrierungspfad (relativ zum Registrierungsstamm der Anwendung) des VSPackages ab.

(Geerbt von RegistrationAttribute)
Register(RegistrationAttribute+RegistrationContext)

Registriert dieses Attribut.

Unregister(RegistrationAttribute+RegistrationContext)

Entfernt den Schlüssel aus der Registrierung.

Gilt für: