DesignerSerializationVisibilityAttribute Klasa

Definicja

Określa typ trwałości do użycia podczas serializacji właściwości w składniku w czasie projektowania.

C#
[System.AttributeUsage(System.AttributeTargets.Event | System.AttributeTargets.Field | System.AttributeTargets.Method | System.AttributeTargets.Property)]
public sealed class DesignerSerializationVisibilityAttribute : Attribute
C#
public sealed class DesignerSerializationVisibilityAttribute : Attribute
C#
[System.AttributeUsage(System.AttributeTargets.Method | System.AttributeTargets.Property)]
public sealed class DesignerSerializationVisibilityAttribute : Attribute
Dziedziczenie
DesignerSerializationVisibilityAttribute
Atrybuty

Przykłady

Poniższy przykład kodu przedstawia użycie DesignerSerializationVisibilityAttribute zestawu na Contentwartość . Utrwala wartości właściwości publicznej kontrolki użytkownika, którą można skonfigurować w czasie projektowania. Aby użyć przykładu, najpierw skompiluj poniższy kod w bibliotece kontrolek użytkownika. Następnie dodaj odwołanie do skompilowanego pliku .dll w nowym projekcie aplikacji systemu Windows. Jeśli używasz programu Visual Studio, element ContentSerializationExampleControl zostanie automatycznie dodany do przybornika.

Przeciągnij kontrolkę z przybornika do formularza i ustaw właściwości DimensionData obiektu wymienionego w okno Właściwości. Po wyświetleniu kodu formularza kod zostanie dodany do InitializeComponent metody formularza nadrzędnego. Ten kod ustawia wartości właściwości kontrolki na te, które zostały ustawione w trybie projektowania.

C#
using System;
using System.Collections;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Drawing;
using System.Windows.Forms;

namespace DesignerSerializationVisibilityTest
{
    // The code for this user control declares a public property of type DimensionData with a DesignerSerializationVisibility 
    // attribute set to DesignerSerializationVisibility.Content, indicating that the properties of the object should be serialized.

    // The public, not hidden properties of the object that are set at design time will be persisted in the initialization code
    // for the class object. Content persistence will not work for structs without a custom TypeConverter.		

    public class ContentSerializationExampleControl : System.Windows.Forms.UserControl
    {
    private System.ComponentModel.Container components = null;				
    
    [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
    public DimensionData Dimensions
    {
        get 
        {
        return new DimensionData(this);
        }		
    }

    public ContentSerializationExampleControl()
    {
            InitializeComponent();		
    }
        
    protected override void Dispose( bool disposing )
    {
        if( disposing )
        {
        if( components != null )
            components.Dispose();
        }
        base.Dispose( disposing );
    }

    private void InitializeComponent()
    {
        components = new System.ComponentModel.Container();
    }
    }

    [TypeConverterAttribute(typeof(System.ComponentModel.ExpandableObjectConverter))]
    // This attribute indicates that the public properties of this object should be listed in the property grid.
    public class DimensionData
    {		
    private Control owner;

    // This class reads and writes the Location and Size properties from the Control which it is initialized to.
    internal DimensionData(Control owner)
    {
            this.owner = owner;			
    }

    public Point Location
    {
        get
        {
        return owner.Location;
        }
        set
        {
        owner.Location = value;
        }
    }

    public Size FormSize
    {
        get
            {
        return owner.Size;
        }
        set
        {
        owner.Size = value;
        }
    }
    }
}

Uwagi

Gdy serializator utrzymuje trwały stan dokumentu w trybie projektowania, często dodaje kod do metody inicjowania składników w celu utrwalania wartości właściwości ustawionych w czasie projektowania. Dzieje się tak domyślnie w przypadku większości typów podstawowych, jeśli żaden atrybut nie został ustawiony na bezpośrednie inne zachowanie.

Za pomocą DesignerSerializationVisibilityAttributeelementu można wskazać, czy wartość właściwości to Visible, i powinna być utrwalone w kodzie inicjowania, Hiddeni nie powinna być utrwalana w kodzie inicjowania lub składa się z Contentelementu , który powinien mieć kod inicjowania wygenerowany dla każdej publicznej, a nie ukrytej właściwości obiektu przypisanego do właściwości.

Członkowie, którzy nie mają elementu DesignerSerializationVisibilityAttribute , będą traktowani tak, jakby mieli DesignerSerializationVisibilityAttribute wartość .Visible Wartości właściwości oznaczonej jako Visible będą serializowane, jeśli to możliwe, przez serializator dla typu. Aby określić niestandardową serializacji dla określonego typu lub właściwości, użyj DesignerSerializerAttributeelementu .

Aby uzyskać więcej informacji, zobacz Atrybuty.

Konstruktory

Pola

Content

Określa, że serializator powinien serializować zawartość właściwości, a nie samą właściwość. To pole jest tylko do odczytu.

Default

Określa wartość domyślną, czyli , czyli Visibleprojektant wizualizacji używa domyślnych reguł do generowania wartości właściwości. To static pole jest tylko do odczytu.

Hidden

Określa, że serializator nie powinien serializować wartości właściwości. To static pole jest tylko do odczytu.

Visible

Określa, że serializator powinien mieć możliwość serializacji wartości właściwości. To static pole jest tylko do odczytu.

Właściwości

TypeId

Po zaimplementowaniu w klasie pochodnej pobiera unikatowy identyfikator dla tego elementu Attribute.

(Odziedziczone po Attribute)
Visibility

Pobiera wartość wskazującą podstawowy tryb serializacji, który powinien być używany podczas określania, czy i jak utrwałać wartość właściwości.

Metody

Equals(Object)

Wskazuje, czy to wystąpienie oraz określony obiekt są równe.

GetHashCode()

Zwraca kod skrótu dla tego obiektu.

GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
IsDefaultAttribute()

Pobiera wartość wskazującą, czy bieżąca wartość atrybutu jest wartością domyślną atrybutu.

IsDefaultAttribute()

W przypadku zastąpienia w klasie pochodnej wskazuje, czy wartość tego wystąpienia jest wartością domyślną klasy pochodnej.

(Odziedziczone po Attribute)
Match(Object)

W przypadku zastąpienia w klasie pochodnej zwraca wartość wskazującą, czy to wystąpienie jest równe określonemu obiektowi.

(Odziedziczone po Attribute)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Jawne implementacje interfejsu

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania.

(Odziedziczone po Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Pobiera informacje o typie obiektu, którego można użyć do pobrania informacji o typie interfejsu.

(Odziedziczone po Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Pobiera informację o liczbie typów interfejsów, jakie zawiera obiekt (0 lub 1).

(Odziedziczone po Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Umożliwia dostęp do właściwości i metod udostępnianych przez obiekt.

(Odziedziczone po Attribute)

Dotyczy

Produkt Wersje
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

Zobacz też