Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Clase DesignerSerializationVisibilityAttribute

 

Especifica el tipo de persistencia que se utilizará al serializar una propiedad en un componente en tiempo de diseño.

Espacio de nombres:   System.ComponentModel
Ensamblado:  System (en System.dll)

System.Object
  System.Attribute
    System.ComponentModel.DesignerSerializationVisibilityAttribute

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

NombreDescripción
System_CAPS_pubmethodDesignerSerializationVisibilityAttribute(DesignerSerializationVisibility)

Inicializa una nueva instancia de la DesignerSerializationVisibilityAttribute clase utilizando especificado DesignerSerializationVisibility valor.

NombreDescripción
System_CAPS_pubpropertyTypeId

Cuando se implementa en una clase derivada, obtiene un identificador único para este Attribute.(Heredado de Attribute).

System_CAPS_pubpropertyVisibility

Obtiene un valor que indica el modo de serialización básica que debe utilizar un serializador al determinar si y cómo conservar el valor de una propiedad.

NombreDescripción
System_CAPS_pubmethodEquals(Object)

Indica si esta instancia y un objeto especificado son iguales.(Invalida Attribute.Equals(Object)).

System_CAPS_pubmethodGetHashCode()

Devuelve el código hash de este objeto.(Invalida Attribute.GetHashCode()).

System_CAPS_pubmethodGetType()

Obtiene el Type de la instancia actual.(Heredado de Object).

System_CAPS_pubmethodIsDefaultAttribute()

Obtiene un valor que indica si el valor actual del atributo es el valor predeterminado para el atributo.(Invalida Attribute.IsDefaultAttribute()).

System_CAPS_pubmethodMatch(Object)

Cuando se invalida en una clase derivada, devuelve un valor que indica si esta instancia es igual al objeto especificado. (Heredado de Attribute).

System_CAPS_pubmethodToString()

Retorna una cadena que representa al objeto actual. (Heredado de Object).

NombreDescripción
System_CAPS_pubfieldSystem_CAPS_staticContent

Especifica que un serializador debe serializar el contenido de la propiedad, en lugar de la propiedad en Sí. Este campo es de solo lectura.

System_CAPS_pubfieldSystem_CAPS_staticDefault

Especifica el valor predeterminado, que es Visible, es decir, un diseñador visual utiliza las reglas predeterminadas para generar el valor de una propiedad. Esto static campo es de solo lectura.

System_CAPS_pubfieldSystem_CAPS_staticHidden

Especifica que un serializador no debe serializar el valor de la propiedad. Esto static campo es de solo lectura.

System_CAPS_pubfieldSystem_CAPS_staticVisible

Especifica que se debe permitir un serializador que serialice el valor de la propiedad. Esto static campo es de solo lectura.

NombreDescripción
System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío.(Heredado de Attribute).

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Obtiene la información del tipo de un objeto, que puede utilizarse para obtener la información del tipo de una interfaz. (Heredado de Attribute).

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfoCount(UInt32)

Recupera el número de interfaces de tipo de información que suministra un objeto (0 ó 1)

(Heredado de Attribute).

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

Proporciona acceso a las propiedades y los métodos expuestos por un objeto.(Heredado de Attribute).

Cuando un serializador conserva el estado con persistencia de un documento de modo de diseño, suele agregar código al método de inicialización de componentes para conservar los valores de propiedades que se han establecido en tiempo de diseño. Esto sucede de forma predeterminada para los tipos más básicos, si no se ha establecido ningún atributo para indicar a otro comportamiento.

Con el DesignerSerializationVisibilityAttribute, puede indicar si el valor de una propiedad es Visible, y debe conservarse en el código de inicialización, Hidden, y no debe conservarse en el código de inicialización o consta de Content, que debería tener el código de inicialización generado para cada propiedad pública no oculta del objeto asignado a la propiedad.

Los miembros que no tienen un DesignerSerializationVisibilityAttribute se tratará como si tuvieran un DesignerSerializationVisibilityAttribute con un valor de Visible. Los valores de una propiedad marcan como Visible se serializarán, si es posible, un serializador para el tipo. Para especificar la serialización personalizada para un determinado tipo o propiedad, utilice la DesignerSerializerAttribute.

Para obtener más información, consulta Extender metadatos mediante atributos.

En el ejemplo de código siguiente se muestra el uso de un DesignerSerializationVisibilityAttribute establecido en Content. Conserva los valores de una propiedad pública de un control de usuario que se puede configurar en tiempo de diseño. Para utilizar el ejemplo, compile primero el siguiente código en una biblioteca de controles de usuario. A continuación, agregue una referencia al archivo .dll compilado en un nuevo proyecto de aplicación de Windows. Si está utilizando Visual Studio, el ContentSerializationExampleControl se agrega automáticamente a la herramientas.

Arrastrar el control desde el herramientas a un formulario y establezca las propiedades de la DimensionData objeto aparece en la ventana Propiedades. Al ver el código del formulario, se habrá agregado código para el InitializeComponent método del formulario primario. Este código establece los valores de las propiedades del control a las que se ha configurado en modo de diseño.

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
Disponible desde 1.1

Cualquier miembro ( Compartido en Visual Basic) estático público de este tipo es seguro para subprocesos. No se garantiza que los miembros de instancia sean seguros para subprocesos.

Volver al principio
Mostrar: