Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

DesignerSerializationVisibilityAttribute (Clase)

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

System.Object
  System.Attribute
    System.ComponentModel.DesignerSerializationVisibilityAttribute

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

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

El tipo DesignerSerializationVisibilityAttribute expone los siguientes miembros.

  NombreDescripción
Método públicoDesignerSerializationVisibilityAttributeInicializa una nueva instancia de la clase DesignerSerializationVisibilityAttribute mediante el valor especificado de DesignerSerializationVisibility.
Arriba

  NombreDescripción
Propiedad públicaTypeIdCuando se implementa en una clase derivada, obtiene un identificador único para este Attribute. (Se hereda de Attribute).
Propiedad públicaVisibilityObtiene un valor que indica el modo básico de serialización que debe utilizar un serializador al determinar si se conserva el valor de una propiedad y la forma de hacerlo.
Arriba

  NombreDescripción
Método públicoEqualsIndica si esta instancia y un objeto especificado son iguales. (Invalida a Attribute.Equals(Object)).
Método públicoGetHashCodeDevuelve el código hash de este objeto. (Invalida a Attribute.GetHashCode()).
Método públicoGetType Obtiene el Type de la instancia actual. (Se hereda de Object).
Método públicoIsDefaultAttributeObtiene un valor que indica si el valor actual del atributo es su valor predeterminado. (Invalida a Attribute.IsDefaultAttribute()).
Método públicoMatch Cuando se invalida en una clase derivada, devuelve un valor que indica si esta instancia es igual al objeto especificado. (Se hereda de Attribute).
Método públicoToString Retorna una cadena que representa al objeto actual. (Se hereda de Object).
Arriba

  NombreDescripción
Campo públicoMiembro estáticoContentEspecifica que un serializador debe serializar el contenido de la propiedad en lugar de la propiedad. Este campo es de sólo lectura.
Campo públicoMiembro estáticoDefaultEspecifica el valor predeterminado, que es Visible, es decir, un diseñador visual utiliza las reglas predeterminadas para generar el valor de una propiedad. Este campo static es de solo lectura.
Campo públicoMiembro estáticoHiddenEspecifica que un serializador no debe serializar el valor de la propiedad. Este campo static es de solo lectura.
Campo públicoMiembro estáticoVisibleEspecifica que se debe permitir a un serializador la serialización del valor de la propiedad. Este campo static es de solo lectura.
Arriba

  NombreDescripción
Implementación explícita de interfacesMétodo privado_Attribute.GetIDsOfNamesAsigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío. (Se hereda de Attribute).
Implementación explícita de interfacesMétodo privado_Attribute.GetTypeInfoObtiene la información de tipos de un objeto, que puede utilizarse para obtener la información de tipos de una interfaz. (Se hereda de Attribute).
Implementación explícita de interfacesMétodo privado_Attribute.GetTypeInfoCount

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

(Se hereda de Attribute).
Implementación explícita de interfacesMétodo privado_Attribute.InvokeProporciona acceso a las propiedades y los métodos expuestos por un objeto. (Se hereda de Attribute).
Arriba

Cuando un serializador conserva el estado con persistencia de un documento en modo de diseño, suele agregar código al método de inicialización de los componentes para conservar los valores de las propiedades establecidas en tiempo de diseño. Este comportamiento es el predeterminado para la mayoría de los tipos básicos si no se establece ningún atributo que indique lo contrario.

Con el objeto DesignerSerializationVisibilityAttribute se puede indicar si el valor de una propiedad es Visible, y debe conservarse en el código de inicialización, si es Hidden, y no debe conservarse en el código de inicialización, o si está compuesto por Content, y debe disponer de código de inicialización generado para cada propiedad pública que no esté oculta del objeto asignado a la propiedad.

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

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

En el siguiente ejemplo de código se muestra el uso de un objeto DesignerSerializationVisibilityAttribute establecido en Content. Conserva los valores de una propiedad pública de un control de usuario, que pueden configurarse en tiempo de diseño. Para reproducir el ejemplo, compile primero el siguiente código en una biblioteca de controles de usuario. Después, agregue una referencia al archivo .dll compilado en un nuevo proyecto de aplicación para Windows. Si utiliza Visual Studio, se agrega automáticamente ContentSerializationExampleControl al Cuadro de herramientas.

Arrastre el control del Cuadro de herramientas a un formulario y establezca las propiedades del objeto DimensionData que se muestran en la ventana Propiedades. Cuando visualice el código del formulario, se habrá agregado código al método InitializeComponent del formulario primario. Este código establece los valores de las propiedades del control en los valores que se hayan establecido 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

Compatible con: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Todos los miembros públicos static (Shared en Visual Basic) de este tipo son seguros para subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft