Klasa ProvideDesignerMetadataAttribute
Deklaruje dodatkowe metadane dla typów lub obiektów, umożliwiając stron trzecich, który zmodyfikuje zestaw dostępnych na klasy metadanych.
Hierarchia dziedziczenia
System.Object
System.Attribute
Microsoft.VisualStudio.Shell.RegistrationAttribute
Microsoft.VisualStudio.Shell.Design.ProvideDesignerMetadataAttribute
Przestrzeń nazw: Microsoft.VisualStudio.Shell.Design
Zestaw: Microsoft.VisualStudio.Shell.Design (w Microsoft.VisualStudio.Shell.Design.dll)
Składnia
'Deklaracja
<AttributeUsageAttribute(AttributeTargets.Class, AllowMultiple := True, Inherited := True)> _
Public NotInheritable Class ProvideDesignerMetadataAttribute _
Inherits RegistrationAttribute
[AttributeUsageAttribute(AttributeTargets.Class, AllowMultiple = true, Inherited = true)]
public sealed class ProvideDesignerMetadataAttribute : RegistrationAttribute
Typ ProvideDesignerMetadataAttribute uwidacznia następujące elementy członkowskie.
Konstruktorzy
Nazwa | Opis | |
---|---|---|
ProvideDesignerMetadataAttribute | Inicjuje nowe wystąpienie ProvideDesignerMetadataAttribute, dodawania nowych metadanych Type z prądem Type. |
Początek
Właściwości
Nazwa | Opis | |
---|---|---|
IsGlobal | Zwraca lub ustawia zakres zmian metadanych, świadczone przez wystąpienieProvideDesignerMetadataAttribute | |
MetadataType | Pobiera typ metadanych. | |
RuntimeType | Pobiera typ runtime. | |
TypeId | Pobiera bieżące wystąpienie tego atrybutu. (Odziedziczone z RegistrationAttribute). |
Początek
Metody
Nazwa | Opis | |
---|---|---|
Equals | Infrastruktura. Zwraca wartość, która wskazuje, czy to wystąpienie jest równa określonego obiektu. (Odziedziczone z Attribute). | |
GetHashCode | Zwraca kod skrótu dla tego wystąpienia. (Odziedziczone z Attribute). | |
GetType | Pobiera Type bieżącej instancji. (Odziedziczone z Object). | |
IsDefaultAttribute | Gdy zastąpiony w klasie pochodnej, wskazuje, czy wartość to wystąpienie jest wartością domyślną dla klasy pochodnej. (Odziedziczone z Attribute). | |
Match | Gdy zastąpiony w klasie pochodnej, zwraca wartość wskazującą, czy to wystąpienie jest równa określonego obiektu. (Odziedziczone z Attribute). | |
Register | Rejestruje projektanta metadanych. (Zastępuje RegistrationAttribute.Register(RegistrationAttribute.RegistrationContext)). | |
ToString | Zwraca ciąg, który reprezentuje bieżącego obiektu. (Odziedziczone z Object). | |
Unregister | Usuwa metadane projektanta klucza rejestru. (Zastępuje RegistrationAttribute.Unregister(RegistrationAttribute.RegistrationContext)). |
Początek
Jawne implementacje interfejsu
Nazwa | Opis | |
---|---|---|
_Attribute.GetIDsOfNames | Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłki. (Odziedziczone z Attribute). | |
_Attribute.GetTypeInfo | Pobiera informacje o typie dla obiektu, który można uzyskać informacji o typie dla interfejsu. (Odziedziczone z Attribute). | |
_Attribute.GetTypeInfoCount | Pobiera numer typu informacji interfejsów, że obiekt zawiera (0 lub 1). (Odziedziczone z Attribute). | |
_Attribute.Invoke | Zapewnia dostęp do właściwości i metod udostępnianych przez obiekt. (Odziedziczone z Attribute). |
Początek
Uwagi
Modyfikacje dostarczone przez wystąpienie ProvideDesignerMetadataAttribute stosowane do wykonania VSPackage Package może mieć jeden z dwóch zakresów:
Globalne--dla wszystkich nowych wystąpień danego składnika
Lokalne--odnoszące się tylko do instancji składnika, utworzony na powierzchni projektu, świadczone przez bieżące VSPackage.
Wartość IsGlobal w atrybucie, stosowane do wykonania VSPackage Package określa ten zakres.
Stosowanie tego atrybutu do implementacja Package z IsGlobal właściwość ProvideDesignerMetadataAttribute obiektu ustawić true, jak poniżej, zmienia przeglądarki dla całego Visual Studio środowiska:
[ProvideDesignerMetadata(typeof(Color), typeof(CustomBrowser), IsGlobal=true)]
internal class MyPackage : Package {}
Jeśli ustawiona została flaga global false, a następnie zmiana metadanych jest lokalny do bieżącego Projektant obsługiwanych przez bieżący VSPackage:
[ProvideDesignerMetadata(typeof(Color), typeof(CustomBrowser), IsGlobal=false)]
internal class MyPackage : Package {}
[!UWAGA]
W chwili obecnej powierzchni projektu obsługuje tworzenie tylko składniki, a zatem tylko składniki mogą mieć metadane lokalne.W powyższym przykładzie, będziemy próby były zmodyfikować właściwości, takie jak Color właściwości obiektu.Jeśli IsGlobal jest ustawiona na false , CustomBrowser nigdy nie są wyświetlane, ponieważ projektant nigdy faktycznie tworzy instancję Color.Ustawienie IsGlobal do false jest przydatne dla składników, takich jak formanty, zegary i oknach dialogowych.
Atrybutu kontekstu
Stosuje się do |
Klasy, zapewniając VSPackages przez zaimplementowanie IVsPackage interfejsu lub Package klasy. |
Powtarzalne |
Tak |
Wymagane atrybuty |
Brak |
Nieprawidłowe atrybuty |
Brak |
Uwagi dotyczące wywoływania
Stosuje się wystąpienie tego atrybutu do wykonania klasy Package dla VSPackage, jeśli musi zmodyfikować bieżący typ, zmieniając jego metadane, które są dostępne za pośrednictwem tego VSPackage TypeDescriptor obiektu.
Przykłady
Aby zastąpić próbnika kolorów ( UITypeEditor wdrożenia, tworzenia wartość edytor, który zostanie dostarczony do użytkowników podczas modyfikowania właściwości koloru obiektu w czasie projektowania) skojarzone z Color klasy reguires że:
Wystąpienie ProvideDesignerMetadataAttribute przez stosowane do wykonania VSPackage Package do rejestru, że VSPackage jest dodanie nowego obiektu metadanych (CustomColorAttributes) do Color klasy.
Zawierają definicje nowego obiektu metadanych (CustomColorAttributes), aby skojarzyć ją z nowych próbnik kolorów przy użyciu EditorAttribute.
Utworzyć implementację UITypeEditor zapewnienie interfejsu projektowania do jego manipulacji (CustomColorEditor ).
//Register the VSPackage as providing modification of the metad
[ProvideDesignerMetadata(typeof(Color), typeof(CustomColorAttributes), IGlobal=true)]
internal class CustomColorPackage : Package {
/*
*package implementation details
*/
}
// Specify the editor to change this property
[EditorAttribute(typeof(CustomColorEditor), typeof(UITypeEditor))]
internal class CustomColorAttributes
{
/*
* Implementation of new color settings to be used with the custom color picker
*/
}
// And, the new color editor itself
internal class CustomColorEditor : UITypeEditor {
/*
* Implementation of the picker
*/
}
.NET Framework Mechanizmu odbicie zostaną zaktualizowane i kiedy użytkownicy potrzebują do modyfikowania właściwości koloru obiektu, .NET Framework środowiska będzie wywoływać GetEditor (jak pokazano poniżej) i uzyskać wystąpienia CustomColorEditor, nie Edytor kolor domyślny dla Color klasy.
UITypeEditor e = TypeDescriptor.GetEditor(typeof(Color), typeof(UITypeEditor));
Bezpieczeństwo wątku
Wszystkie publiczne static (Shared w języku Visual Basic) elementy członkowskie tego typu są bezpieczne dla wątków. Wystąpienia elementów członkowskich nie dają gwarancji bezpieczeństwa wątków.