Udostępnij za pośrednictwem


ProvideProfileAttribute Klasa

Definicja

Zastosuj ten atrybut do niezależnych obiektów używanych do implementowania obsługi ustawień programu Visual Studio programu VSPackage.

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
Dziedziczenie
ProvideProfileAttribute
Atrybuty

Przykłady

W poniższym przykładzie dwa wystąpienia ProvideProfileAttribute klasy są stosowane do implementacji pakietu VSPackage w celu zdefiniowania dwóch klas jako zapewnienia obsługi ustawień programu Visual Studio dla pakietu VSPackage zaimplementowanego przez klasę MyPackage.

  1. Ponieważ implementacja strony o nazwie "DesignerOptionsPage" pochodzi z DialogPageelementu , może obsługiwać ustawienia programu Visual Studio i strony Opcje narzędzi i jest rejestrowana jako dostarczanie obu następujących elementów:

    • Implementacja strony Opcje narzędzi , która jest zarejestrowana za pośrednictwem wystąpienia ProvideOptionPageAttribute. Aby uzyskać więcej informacji na temat stron opcji narzędzi pomocniczych, zobacz ProvideOptionPageAttribute.

    • Implementacja, która obsługuje utrwalanie stanu stron Opcje narzędzi , co jest wskazywane przez końcowy argument konstruktora ProvideProfileAttribute .

  2. Klasa o nazwie "PersistedDesignerState" jest zarejestrowana jako zapewniająca obsługę tylko ustawień programu Visual Studio, zapisując i pobierając pozostałe informacje o stanie pakietu VSPackage o nazwie "MyPackage", implementując IProfileManagerpolecenie .

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  
}  

Uwagi

Uwagi dotyczące wywoływania

ProvideProfileAttribute Zastosuj atrybut do klas implementujących pakiet VSPackage, gdy istnieje klasa, która implementuje funkcje ustawień programu Visual Studio dla pakietu VSPackage, umożliwiając mu zapisywanie i pobieranie informacji o stanie pakietu VSPackage.

Uwaga

Klasy implementujące IProfileManagerklasy muszą również implementować IComponentklasę , która może być wykonywana przez wyprowadzenie klasy z klasy .Component

Kontekst atrybutu

Dotyczy Pakiety VSPackage korzystające z mechanizmu ustawień programu Visual Studio za pośrednictwem klas implementujących IProfileManager interfejsy lub DialogPage .
Powtarzalność Tak
Wymagane atrybuty DefaultRegistryRootAttribute . Uwaga Jeśli klasa implementowania ustawień programu Visual Studio udostępnia również stronę Opcje narzędzi, ProvideOptionPageAttribute jest również wymagana.
Nieprawidłowe atrybuty Brak

Uwagi dotyczące implementacji

Ten atrybut jest używany tylko do celów rejestracji i nie ma wpływu na zachowanie środowiska uruchomieniowego.

ProvideProfileAttribute rejestruje implementację IProfileManager klasy lub DialogPage jako obsługę utrwalania części lub całego stanu pakietu VSPackage za pomocą mechanizmu ustawień programu Visual Studio. Informacje o stanie utrwalane przez klasę implementowania są określane jako kategoria ustawień programu Visual Studio, a jej wpis definiujący w rejestrze jest określany jako punkt ustawień niestandardowych.

Gdy użytkownik wybierze polecenie Importuj/Eksportuj ustawienia w menu Narzędzia , aby zapisać ustawienia programu Visual Studio, klasy zarejestrowane przez ProvideProfileAttribute program są tworzone przez środowisko IDE i używane do zapisywania ustawień.

Z tego powodu:

  • Obsługa ustawień programu Visual Studio powinna być implementowana na własnym obiekcie, a nie na samym zestawie VSPackage.

  • Klasa implementowania ustawień programu Visual Studio może obsługiwać tylko jedną kategorię ustawień programu Visual Studio zdefiniowaną w punkcie ustawień niestandardowych.

Jednak pojedynczy pakiet VSPackage może obsługiwać kilka kategorii ustawień programu Visual Studio zgodnie z definicją wielu punktów ustawień niestandardowych, o ile:

  • Każda kategoria ustawień programu Visual Studio jest implementowana w oddzielnej klasie.

  • Każda klasa implementującą ustawienia programu Visual Studio jest rejestrowana jako obsługa pakietu VSPackage przez własne wystąpienie programu ProvideProfileAttribute.

    Uwaga

    Różni się to od implementacji opartych na modelu COM, w których klasa implementowania ustawień programu Visual Studio może obsługiwać wiele punktów ustawień niestandardowych.

Wystąpienie klasy ProvideProfileAttribute:

  • Unikatowo identyfikuje kategorię ustawień programu Visual Studio punktu ustawień niestandardowych z identyfikatorem GUID uzyskanym z Type klasy implementowania ustawień programu Visual Studio.

  • Ustawia nazwę kategorii ustawień programu Visual Studio, zarówno jej kanoniczną, nielokalizowaną nazwę używaną w wpisach rejestru, jak i zlokalizowanych zasobach nazw.

  • Wskazuje, czy ustawienia programu Visual Studio obsługujące implementację ProvideProfileAttribute klasy obsługują stronę Opcje narzędzi (aby uzyskać więcej informacji na temat strony opcje narzędzi pomocniczych, zobacz Strony opcji).

Aby uzyskać więcej informacji na temat tworzenia i stosowania wystąpień programu ProvideProfileAttribute, zobacz poniższy przykład i ProvideProfileAttribute.

Konstruktory

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

Inicjuje nowe wystąpienie elementu ProvideProfileAttribute.

Właściwości

AlternateParent

Pobiera lub ustawia nazwę innej kategorii w profilu.

CategoryName

Pobiera kanoniczną nielokalizowaną nazwę kategorii ustawień programu Visual Studio.

CategoryResourceID

Pobiera identyfikator zasobu nazwy dla kategorii ustawień programu Visual Studio.

DescriptionResourceID

Pobiera zlokalizowany identyfikator zasobu opis tej strony profilu.

GroupName

Pobiera nielokalizowaną nazwę tej grupy.

GroupResourceID

Pobiera lub ustawia zlokalizowany identyfikator zasobu grupy, do której należy ta strona.

IsToolsOptionPage

Pobiera, czy jest to również strona Opcje narzędzi.

MigrationType

Ustawia akcję migracji do wykonania dla tej kategorii.

ObjectName

Pobiera kanoniczną nielokalizowaną nazwę tej strony w profilu.

ObjectNameResourceID

Pobiera zlokalizowany identyfikator zasobu nazwy tej strony w profilu.

ObjectType

Pobiera typ strony.

ResourcePackageGuid

Pobiera lub ustawia identyfikator GUID pakietu dostarczającego ciągi zasobów.

TypeId

Zastąp właściwość TypeID, aby umożliwić klasom pochodnym RegistrationAttribute pracować z atrybutem System.ComponentModel.TypeDescriptor.GetAttributes(...). Atrybut pochodzący z tego atrybutu będzie musiał zastąpić tę właściwość tylko wtedy, gdy potrzebuje lepszej kontroli nad wystąpieniami, które można zastosować do klasy.

(Odziedziczone po RegistrationAttribute)

Metody

GetPackageRegKeyPath(Guid)

Pobiera ścieżkę rejestru (względem katalogu głównego rejestru aplikacji) pakietu VSPackage.

(Odziedziczone po RegistrationAttribute)
Register(RegistrationAttribute+RegistrationContext)

Rejestruje ten atrybut.

Unregister(RegistrationAttribute+RegistrationContext)

Usuwa klucz z rejestru.

Dotyczy