PersonalizableAttribute Clase

Definición

Representa el atributo de personalización. Esta clase no puede heredarse.

public ref class PersonalizableAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Property)]
public sealed class PersonalizableAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Property)>]
type PersonalizableAttribute = class
    inherit Attribute
Public NotInheritable Class PersonalizableAttribute
Inherits Attribute
Herencia
PersonalizableAttribute
Atributos

Ejemplos

En el ejemplo de código siguiente se muestra cómo usar la PersonalizableAttribute clase en el código. El ejemplo consta de una página .aspx que hace referencia a un control de usuario de elemento web denominado ColorSelector.ascx. El código siguiente es el archivo .aspx del ejemplo.

<%@ Page Language="C#"  %>
<%@ Register TagPrefix="uc1" TagName="colorcontrol" Src="ColorSelector.ascx" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
       
<body>
    <form id="form1" runat="server">
      <div>
         <asp:LoginName ID="LoginName1" runat="server" />
         
        <asp:LoginStatus ID="LoginStatus1" runat="server" LogoutAction="RedirectToLoginPage" />
            <br />
        <br />
         <asp:WebPartManager ID="WebPartManager1" runat="server">
        </asp:WebPartManager>
    
    </div>
        <asp:WebPartZone ID="WebPartZone1" runat="server"  Height="200" Width="200">
        <ZoneTemplate>
        <uc1:colorcontrol id="colorcontrol" runat="server" />
        </ZoneTemplate>
        </asp:WebPartZone>        
    </form>
</body>
</html>

El código siguiente es para el ColorSelector.ascx control .

Importante

Este ejemplo tiene un cuadro de texto que acepta datos proporcionados por el usuario, lo que puede suponer una amenaza para la seguridad. De forma predeterminada, ASP.NET Web Pages valida que los datos proporcionados por el usuario no incluyen elementos HTML ni de script. Para más información, consulte Información general sobre los ataques mediante scripts.

<%@ Control Language="C#" %>

<script runat="server">
private System.Drawing.Color userchoice;

[Personalizable]
public System.Drawing.Color UserColorChoice
{
   get
   {
     return userchoice;
   }
   set
   {
     userchoice = value;
   }
}

protected void OnRed(object src, EventArgs e)
{
  _color.BackColor = System.Drawing.Color.Red;
  UserColorChoice = System.Drawing.Color.Red;
}

protected void OnGreen(object src, EventArgs e)
{
  _color.BackColor = System.Drawing.Color.Green;
  UserColorChoice = System.Drawing.Color.Green;
}

protected void OnBlue(object src, EventArgs e)
{
  _color.BackColor = System.Drawing.Color.Blue;
  UserColorChoice = System.Drawing.Color.Blue;
}

protected void Page_Init(object src, EventArgs e)
{
  _redButton.Click   += new EventHandler(OnRed);  
  _greenButton.Click += new EventHandler(OnGreen);  
  _blueButton.Click  += new EventHandler(OnBlue);  
}

protected void Page_Load(object src, EventArgs e)
{
  if (!IsPostBack)
  {
          _color.BackColor = UserColorChoice;
  }
}

</script>
<body>
    <div>
        <asp:TextBox ID="_color" runat="server" Height="100" Width="100" />
        <br />
        <asp:button runat="server"  id="_redButton" text="Red"  /> 
          
        <asp:button runat="server"  id="_greenButton" text="Green" />
          
        <asp:button runat="server" id="_blueButton" text="Blue" />
    </div>
</body>

Comentarios

El atributo de personalización, Personalizable, se aplica a las propiedades de control público que necesitan conservar la información de personalización. ASP.NET genera automáticamente el código para conservar o recuperar estos valores del almacén de datos subyacente cuando el control se encuentra en una zona de elementos web en una página de elementos web.

Se deben cumplir los siguientes requisitos para que una propiedad se marque como personalizable:

  • La propiedad debe ser pública y debe tener descriptores de acceso get y set públicos.

  • La propiedad debe ser una propiedad de lectura y escritura.

  • La propiedad debe ser sin parámetros.

  • La propiedad no se puede indizar.

El código se genera automáticamente para cargar y guardar datos de personalización para las propiedades. Las propiedades que admiten la personalización se determinan en función de la existencia de este atributo en la propiedad y del hecho de que la propiedad se ajusta a las restricciones enumeradas anteriormente.

Tenga en cuenta que las propiedades de solo lectura y de solo escritura no se admiten para la personalización. Al aplicar este atributo a una propiedad de solo lectura o de solo escritura, se produce una HttpException excepción . Las propiedades parametrizadas también producen una HttpException excepción.

Las propiedades individuales sin este atributo se excluyen de la personalización si no se usa ningún control especial a través de la IPersonalizable interfaz.

Para obtener más información sobre el uso de atributos, vea Información general sobre personalización de elementos web.

Constructores

PersonalizableAttribute()

Inicializa una nueva instancia de la clase PersonalizableAttribute.

PersonalizableAttribute(Boolean)

Inicializa una nueva instancia de la clase PersonalizableAttribute mediante el parámetro proporcionado.

PersonalizableAttribute(PersonalizationScope)

Inicializa una nueva instancia de la clase PersonalizableAttribute mediante el parámetro proporcionado.

PersonalizableAttribute(PersonalizationScope, Boolean)

Inicializa una nueva instancia de la clase PersonalizableAttribute mediante los parámetros proporcionados.

Campos

Default

Devuelve una instancia de atributo que indica ninguna compatibilidad para personalización. Este campo es de solo lectura.

NotPersonalizable

Devuelve una instancia de atributo que indica ninguna compatibilidad para personalización. Este campo es de solo lectura.

Personalizable

Devuelve una instancia de atributo que indica compatibilidad para personalización. Este campo es de solo lectura.

SharedPersonalizable

Devuelve una instancia de atributo que indica la compatibilidad para personalización con un ámbito compartido. Este campo es de solo lectura.

UserPersonalizable

Devuelve una instancia de atributo que indica compatibilidad para personalización en el ámbito User. Este campo es de solo lectura.

Propiedades

IsPersonalizable

Obtiene el valor que indica si puede personalizarse el atributo, según lo establecido por uno de los constructores.

IsSensitive

Obtiene el valor que indica si el atributo es sensible, como según lo establecido por uno de los constructores.

Scope

Obtiene el valor de enumeración PersonalizationScope para la instancia de clase, según lo establecido por uno de los constructores.

TypeId

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

(Heredado de Attribute)

Métodos

Equals(Object)

Cuando se reemplaza, devuelve una evaluación Booleana de la instancia actual de PersonalizableAttribute y otra instancia PersonalizableAttribute que se proporciona como un parámetro.

GetHashCode()

Cuando se reemplaza, devuelve un código hash del atributo.

GetPersonalizableProperties(Type)

Devuelve una colección de objetos PropertyInfo para las propiedades que coinciden con el tipo de parámetro y están marcadas como personalizables.

GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
IsDefaultAttribute()

Cuando se reemplaza, devuelve un valor que indica si la instancia de atributo es igual al valor del campo Default estático.

Match(Object)

Devuelve un valor que indica si la instancia actual de PersonalizableAttribute y el PersonalizableAttribute especificado tienen el mismo valor de propiedad IsPersonalizable.

MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Implementaciones de interfaz explícitas

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío.

(Heredado de Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Obtiene la información de tipos de un objeto, que puede utilizarse para obtener la información de tipos de una interfaz.

(Heredado de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

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

(Heredado de Attribute)
_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)

Se aplica a