DesignerSerializationVisibilityAttribute 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.
Określa typ trwałości do użycia podczas serializacji właściwości w składniku w czasie projektowania.
public ref class DesignerSerializationVisibilityAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Event | System.AttributeTargets.Field | System.AttributeTargets.Method | System.AttributeTargets.Property)]
public sealed class DesignerSerializationVisibilityAttribute : Attribute
public sealed class DesignerSerializationVisibilityAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Method | System.AttributeTargets.Property)]
public sealed class DesignerSerializationVisibilityAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Event | System.AttributeTargets.Field | System.AttributeTargets.Method | System.AttributeTargets.Property)>]
type DesignerSerializationVisibilityAttribute = class
inherit Attribute
type DesignerSerializationVisibilityAttribute = class
inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Method | System.AttributeTargets.Property)>]
type DesignerSerializationVisibilityAttribute = class
inherit Attribute
Public NotInheritable Class DesignerSerializationVisibilityAttribute
Inherits Attribute
- Dziedziczenie
- 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.
#using <System.Windows.Forms.dll>
#using <System.Drawing.dll>
#using <System.dll>
using namespace System;
using namespace System::Collections;
using namespace System::ComponentModel;
using namespace System::ComponentModel::Design;
using namespace System::Drawing;
using namespace System::Windows::Forms;
// This attribute indicates that the public properties of this object should be listed in the property grid.
[TypeConverterAttribute(System::ComponentModel::ExpandableObjectConverter::typeid)]
public ref class DimensionData
{
private:
Control^ owner;
internal:
// This class reads and writes the Location and Size properties from the Control which it is initialized to.
DimensionData( Control^ owner )
{
this->owner = owner;
}
public:
property Point Location
{
Point get()
{
return owner->Location;
}
void set( Point value )
{
owner->Location = value;
}
}
property Size FormSize
{
Size get()
{
return owner->Size;
}
void set( Size value )
{
owner->Size = value;
}
}
};
// 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 ref class ContentSerializationExampleControl: public System::Windows::Forms::UserControl
{
private:
System::ComponentModel::Container^ components;
public:
property DimensionData^ Dimensions
{
[DesignerSerializationVisibility(DesignerSerializationVisibility::Content)]
DimensionData^ get()
{
return gcnew DimensionData( this );
}
}
ContentSerializationExampleControl()
{
InitializeComponent();
}
public:
~ContentSerializationExampleControl()
{
if ( components != nullptr )
{
delete components;
}
}
private:
void InitializeComponent()
{
components = gcnew System::ComponentModel::Container;
}
};
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;
}
}
}
}
Imports System.Collections
Imports System.ComponentModel
Imports System.ComponentModel.Design
Imports System.Drawing
Imports 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
Inherits System.Windows.Forms.UserControl
Private components As System.ComponentModel.Container = Nothing
<DesignerSerializationVisibility(DesignerSerializationVisibility.Content)> _
Public ReadOnly Property Dimensions() As DimensionData
Get
Return New DimensionData(Me)
End Get
End Property
Public Sub New()
InitializeComponent()
End Sub
Protected Overloads Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If (components IsNot Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
Private Sub InitializeComponent()
End Sub
End Class
' This attribute indicates that the public properties of this object should be listed in the property grid.
<TypeConverterAttribute(GetType(System.ComponentModel.ExpandableObjectConverter))> _
Public Class DimensionData
Private owner As Control
' This class reads and writes the Location and Size properties from the Control which it is initialized to.
Friend Sub New(ByVal owner As Control)
Me.owner = owner
End Sub
Public Property Location() As Point
Get
Return owner.Location
End Get
Set(ByVal Value As Point)
owner.Location = Value
End Set
End Property
Public Property FormSize() As Size
Get
Return owner.Size
End Get
Set(ByVal Value As Size)
owner.Size = Value
End Set
End Property
End Class
End Namespace 'DesignerSerializationVisibilityTest
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
DesignerSerializationVisibilityAttribute(DesignerSerializationVisibility) |
Inicjuje DesignerSerializationVisibilityAttribute nowe wystąpienie klasy przy użyciu określonej DesignerSerializationVisibility wartości. |
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 |
Hidden |
Określa, że serializator nie powinien serializować wartości właściwości. To |
Visible |
Określa, że serializator powinien mieć możliwość serializacji wartości właściwości. To |
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) |