DesignerSerializationVisibilityAttribute Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee geeft u het type persistentie dat moet worden gebruikt bij het serialiseren van een eigenschap op een onderdeel tijdens het ontwerp.
public ref class DesignerSerializationVisibilityAttribute sealed : 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)]
public sealed class DesignerSerializationVisibilityAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Method | System.AttributeTargets.Property)>]
type DesignerSerializationVisibilityAttribute = class
inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Event | System.AttributeTargets.Field | System.AttributeTargets.Method | System.AttributeTargets.Property)>]
type DesignerSerializationVisibilityAttribute = class
inherit Attribute
Public NotInheritable Class DesignerSerializationVisibilityAttribute
Inherits Attribute
- Overname
- Kenmerken
Voorbeelden
In het volgende codevoorbeeld ziet u hoe een DesignerSerializationVisibilityAttribute set wordt gebruikt.Content Hiermee blijven de waarden van een openbare eigenschap van een gebruikersbesturingselement behouden, die tijdens het ontwerp kunnen worden geconfigureerd. Als u het voorbeeld wilt gebruiken, compileert u eerst de volgende code in een gebruikersbeheerbibliotheek. Voeg vervolgens een verwijzing toe naar het gecompileerde .dll-bestand in een nieuw Windows Toepassingsproject. Als u Visual Studio gebruikt, wordt de ContentSerializationExampleControl automatisch toegevoegd aan de Toolbox.
Sleep het besturingselement van het Toolbox naar een formulier en stel de eigenschappen in van het DimensionData-object dat wordt vermeld in de venster Eigenschappen. Wanneer u de code voor het formulier bekijkt, is code toegevoegd aan de InitializeComponent methode van het bovenliggende formulier. Met deze code worden de waarden van de eigenschappen van het besturingselement ingesteld op de waarden die u in de ontwerpmodus hebt ingesteld.
#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.ComponentModel;
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 : UserControl
{
Container components;
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public DimensionData Dimensions => new(this);
public ContentSerializationExampleControl() => InitializeComponent();
protected override void Dispose(bool disposing)
{
if (disposing)
{
components?.Dispose();
}
base.Dispose(disposing);
}
void InitializeComponent() => components = new Container();
}
[TypeConverter(typeof(ExpandableObjectConverter))]
// This attribute indicates that the public properties of this object should be listed in the property grid.
public class DimensionData
{
readonly 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 => owner.Location;
set => owner.Location = value;
}
public Size FormSize
{
get => 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
Opmerkingen
Wanneer een serializer de persistente status van een ontwerpmodusdocument behoudt, wordt vaak code toegevoegd aan de initialisatiemethode van onderdelen om waarden van eigenschappen vast te leggen die tijdens het ontwerptijd zijn ingesteld. Dit gebeurt standaard voor de meeste basistypen, als er geen kenmerk is ingesteld om ander gedrag te leiden.
Met de DesignerSerializationVisibilityAttribute, kunt u aangeven of de waarde voor een eigenschap is Visible, en moet worden bewaard in initialisatiecode, Hiddenen mag niet worden bewaard in initialisatiecode, of bestaat uit Content, die moet worden gegenereerd voor elke openbare, niet verborgen eigenschap van het object dat is toegewezen aan de eigenschap.
Leden die geen zullen hebben DesignerSerializationVisibilityAttribute , worden behandeld alsof ze een DesignerSerializationVisibilityAttribute waarde hebben van Visible. De waarden van een eigenschap die als zodanig is gemarkeerd Visible , worden geserialiseerd door een serialisatiefunctie voor het type. Als u aangepaste serialisatie voor een bepaald type of een bepaalde eigenschap wilt opgeven, gebruikt u de DesignerSerializerAttribute.
Zie Kenmerken voor meer informatie.
Constructors
| Name | Description |
|---|---|
| DesignerSerializationVisibilityAttribute(DesignerSerializationVisibility) |
Initialiseert een nieuw exemplaar van de DesignerSerializationVisibilityAttribute klasse met behulp van de opgegeven DesignerSerializationVisibility waarde. |
Velden
| Name | Description |
|---|---|
| Content |
Hiermee geeft u op dat een serialisatiefunctie de inhoud van de eigenschap moet serialiseren in plaats van de eigenschap zelf. Dit veld is alleen-lezen. |
| Default |
Hiermee geeft u de standaardwaarde op, dat wil Visiblegezegd, een visuele ontwerper gebruikt standaardregels om de waarde van een eigenschap te genereren. Dit |
| Hidden |
Hiermee geeft u op dat een serialisatiefunctie de waarde van de eigenschap niet moet serialiseren. Dit |
| Visible |
Hiermee geeft u op dat een serialisatiefunctie moet worden toegestaan om de waarde van de eigenschap te serialiseren. Dit |
Eigenschappen
| Name | Description |
|---|---|
| TypeId |
Wanneer deze wordt geïmplementeerd in een afgeleide klasse, krijgt u Attributehiervoor een unieke id. (Overgenomen van Attribute) |
| Visibility |
Hiermee wordt een waarde opgehaald die aangeeft welke basisserialisatiemodus een serialisatiemodus moet gebruiken bij het bepalen of en hoe de waarde van een eigenschap moet worden behouden. |
Methoden
| Name | Description |
|---|---|
| Equals(Object) |
Geeft aan of dit exemplaar en een opgegeven object gelijk zijn. |
| GetHashCode() |
Retourneert de hashcode voor dit object. |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| IsDefaultAttribute() |
Hiermee wordt een waarde opgehaald die aangeeft of de huidige waarde van het kenmerk de standaardwaarde voor het kenmerk is. |
| Match(Object) |
Wanneer deze wordt overschreven in een afgeleide klasse, wordt een waarde geretourneerd die aangeeft of dit exemplaar gelijk is aan een opgegeven object. (Overgenomen van Attribute) |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| ToString() |
Retourneert een tekenreeks die het huidige object vertegenwoordigt. (Overgenomen van Object) |
Expliciete interface-implementaties
| Name | Description |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Hiermee wordt een set namen toegewezen aan een bijbehorende set verzend-id's. (Overgenomen van Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Hiermee haalt u de typegegevens voor een object op, die kan worden gebruikt om de typegegevens voor een interface op te halen. (Overgenomen van Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Hiermee wordt het aantal type-informatieinterfaces opgehaald dat een object biedt (0 of 1). (Overgenomen van Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Biedt toegang tot eigenschappen en methoden die door een object worden weergegeven. (Overgenomen van Attribute) |