ProvideProfileAttribute Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
- 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
.
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
.
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. |