Udostępnij za pośrednictwem


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
Metoda publiczna ProvideDesignerMetadataAttribute Inicjuje nowe wystąpienie ProvideDesignerMetadataAttribute, dodawania nowych metadanych Type z prądem Type.

Początek

Właściwości

  Nazwa Opis
Właściwość publiczna IsGlobal Zwraca lub ustawia zakres zmian metadanych, świadczone przez wystąpienieProvideDesignerMetadataAttribute
Właściwość publiczna MetadataType Pobiera typ metadanych.
Właściwość publiczna RuntimeType Pobiera typ runtime.
Właściwość publiczna TypeId Pobiera bieżące wystąpienie tego atrybutu. (Odziedziczone z RegistrationAttribute).

Początek

Metody

  Nazwa Opis
Metoda publiczna Equals Infrastruktura. Zwraca wartość, która wskazuje, czy to wystąpienie jest równa określonego obiektu. (Odziedziczone z Attribute).
Metoda publiczna GetHashCode Zwraca kod skrótu dla tego wystąpienia. (Odziedziczone z Attribute).
Metoda publiczna GetType Pobiera Type bieżącej instancji. (Odziedziczone z Object).
Metoda publiczna IsDefaultAttribute Gdy zastąpiony w klasie pochodnej, wskazuje, czy wartość to wystąpienie jest wartością domyślną dla klasy pochodnej. (Odziedziczone z Attribute).
Metoda publiczna Match Gdy zastąpiony w klasie pochodnej, zwraca wartość wskazującą, czy to wystąpienie jest równa określonego obiektu. (Odziedziczone z Attribute).
Metoda publiczna Register Rejestruje projektanta metadanych. (Zastępuje RegistrationAttribute.Register(RegistrationAttribute.RegistrationContext)).
Metoda publiczna ToString Zwraca ciąg, który reprezentuje bieżącego obiektu. (Odziedziczone z Object).
Metoda publiczna Unregister Usuwa metadane projektanta klucza rejestru. (Zastępuje RegistrationAttribute.Unregister(RegistrationAttribute.RegistrationContext)).

Początek

Jawne implementacje interfejsu

  Nazwa Opis
Jawna implementacja interfejsuMetoda prywatna _Attribute.GetIDsOfNames Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłki. (Odziedziczone z Attribute).
Jawna implementacja interfejsuMetoda prywatna _Attribute.GetTypeInfo Pobiera informacje o typie dla obiektu, który można uzyskać informacji o typie dla interfejsu. (Odziedziczone z Attribute).
Jawna implementacja interfejsuMetoda prywatna _Attribute.GetTypeInfoCount Pobiera numer typu informacji interfejsów, że obiekt zawiera (0 lub 1). (Odziedziczone z Attribute).
Jawna implementacja interfejsuMetoda prywatna _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:

  1. Wystąpienie ProvideDesignerMetadataAttribute przez stosowane do wykonania VSPackage Package do rejestru, że VSPackage jest dodanie nowego obiektu metadanych (CustomColorAttributes) do Color klasy.

  2. Zawierają definicje nowego obiektu metadanych (CustomColorAttributes), aby skojarzyć ją z nowych próbnik kolorów przy użyciu EditorAttribute.

  3. 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.

Zobacz też

Informacje

Przestrzeń nazw Microsoft.VisualStudio.Shell.Design