Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Classe DesignerSerializationVisibilityAttribute

 

Data di pubblicazione: ottobre 2016

Specifica il tipo di persistenza da utilizzare durante la serializzazione di una proprietà su un componente in fase di progettazione.

Spazio dei nomi:   System.ComponentModel
Assembly:  System (in System.dll)

System.Object
  System.Attribute
    System.ComponentModel.DesignerSerializationVisibilityAttribute

[AttributeUsageAttribute(AttributeTargets.Method | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event)]
public sealed class DesignerSerializationVisibilityAttribute : Attribute

NomeDescrizione
System_CAPS_pubmethodDesignerSerializationVisibilityAttribute(DesignerSerializationVisibility)

Inizializza una nuova istanza della classe DesignerSerializationVisibilityAttribute con il valore DesignerSerializationVisibility specificato.

NomeDescrizione
System_CAPS_pubpropertyTypeId

Quando è implementata in una classe derivata, ottiene un identificatore univoco della classe Attribute.(Ereditato da Attribute.)

System_CAPS_pubpropertyVisibility

Ottiene un valore che indica la modalità di serializzazione di base deve utilizzare un serializzatore per determinare se e come rendere persistente il valore di una proprietà.

NomeDescrizione
System_CAPS_pubmethodEquals(Object)

Indica se questa istanza e un oggetto specificato sono uguali.(Esegue l'override di Attribute.Equals(Object).)

System_CAPS_pubmethodGetHashCode()

Restituisce il codice hash per questo oggetto.(Esegue l'override di Attribute.GetHashCode().)

System_CAPS_pubmethodGetType()

Ottiene l'oggetto Type dell'istanza corrente.(Ereditato da Object.)

System_CAPS_pubmethodIsDefaultAttribute()

Ottiene un valore che indica se il valore corrente dell'attributo è il valore predefinito per l'attributo.(Esegue l'override di Attribute.IsDefaultAttribute().)

System_CAPS_pubmethodMatch(Object)

Quando viene eseguito l'override in una classe derivata, restituisce un valore che indica se questa istanza equivale a un oggetto specificato. (Ereditato da Attribute.)

System_CAPS_pubmethodToString()

Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object.)

NomeDescrizione
System_CAPS_pubfieldSystem_CAPS_staticContent

Specifica che un serializzatore deve serializzare il contenuto della proprietà, anziché la proprietà stessa. Questo campo è di sola lettura.

System_CAPS_pubfieldSystem_CAPS_staticDefault

Specifica il valore predefinito, ovvero Visible, ovvero, una finestra di progettazione utilizza le regole predefinite per generare il valore di una proprietà. Questo static campo è di sola lettura.

System_CAPS_pubfieldSystem_CAPS_staticHidden

Specifica che un serializzatore non deve serializzare il valore della proprietà. Questo static campo è di sola lettura.

System_CAPS_pubfieldSystem_CAPS_staticVisible

Specifica che deve essere consentito un serializzatore per serializzare il valore della proprietà. Questo static campo è di sola lettura.

NomeDescrizione
System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Esegue il mapping di un set di nomi a un corrispondente set di identificatori di dispatch. (Ereditato da Attribute.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera le informazioni sui tipi per un oggetto, che possono essere utilizzate per ottenere informazioni sul tipo per un'interfaccia. (Ereditato da Attribute.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfoCount(UInt32)

Recupera il numero di interfacce di informazioni sui tipi che un oggetto fornisce (0 o 1). (Ereditato da Attribute.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fornisce l'accesso alle proprietà ed ai metodi esposti da un oggetto. (Ereditato da Attribute.)

Quando un serializzatore mantiene lo stato persistente di un documento in modalità progettazione, viene in genere aggiunto codice al metodo di inizializzazione dei componenti per rendere persistenti i valori delle proprietà che sono state impostate in fase di progettazione. Ciò avviene per impostazione predefinita per i tipi di base, se l'attributo non è stato impostato su indichi un comportamento diverso.

Con la DesignerSerializationVisibilityAttribute, è possibile indicare se il valore per una proprietà è Visible, e devono essere mantenuti nel codice di inizializzazione, Hidden, e non deve essere persistente nel codice di inizializzazione o è composta da Content, pertanto è necessario avere il codice di inizializzazione generato per ogni proprietà pubblica, non nascosta dell'oggetto assegnato alla proprietà.

I membri che non dispongono di un DesignerSerializationVisibilityAttribute saranno trattati come se hanno un DesignerSerializationVisibilityAttribute con un valore di Visible. I valori di una proprietà contrassegnata come Visible verranno serializzati, se possibile, tramite un serializzatore per il tipo. Per specificare la serializzazione personalizzata per un particolare tipo di proprietà, utilizzare il DesignerSerializerAttribute.

Per altre informazioni, vedere Estensione di metadati mediante attributi.

Esempio di codice riportato di seguito viene illustrato l'utilizzo di un DesignerSerializationVisibilityAttribute impostato su Content. Rende persistenti i valori di una proprietà pubblica di un controllo utente, che può essere configurato in fase di progettazione. Per utilizzare l'esempio, compilare il codice seguente in una libreria di controlli utente. Quindi, aggiungere un riferimento al file con estensione dll compilato in un nuovo progetto applicazione Windows. Se si utilizza Visual Studio, ContentSerializationExampleControl viene aggiunto automaticamente al della casella degli strumenti.

Trascinare il controllo dal della casella degli strumenti a un form e impostare le proprietà del DimensionData oggetto elencato nella finestra Proprietà. Quando si visualizza il codice per il form, codice sarà stati aggiunti per il InitializeComponent metodo del form padre. Questo codice imposta i valori delle proprietà del controllo a quelli impostati in modalità progettazione.

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;
	    }
	}
    }
}

.NET Framework
Disponibile da 1.1

I membri statici pubblici ( Condiviso in Visual Basic) di questo tipo è thread safe. Non tutti i membri di istanza sono garantiti come thread safe.

Torna all'inizio
Mostra: