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 de .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 la entrada del usuario, que es una amenaza de seguridad potencial. De forma predeterminada, ASP.NET páginas web validan que la entrada del usuario no incluye elementos HTML ni de script. Para obtener más información, consulte Información general sobre vulnerabilidades de seguridad de script.

<%@ 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 está 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 indexar.

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

Tenga en cuenta que no se admiten propiedades de solo lectura y de solo escritura para la personalización. Si se aplica este atributo a una propiedad de solo lectura o de solo escritura, se produce una HttpException excepción . Las propiedades con parámetros también inician 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

Nombre Description
PersonalizableAttribute()

Inicializa una nueva instancia de la clase PersonalizableAttribute.

PersonalizableAttribute(Boolean)

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

PersonalizableAttribute(PersonalizationScope, Boolean)

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

PersonalizableAttribute(PersonalizationScope)

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

Campos

Nombre Description
Default

Devuelve una instancia de atributo que indica que no se admite la personalización. Este campo es de sólo lectura.

NotPersonalizable

Devuelve una instancia de atributo que indica que no se admite la personalización. Este campo es de sólo lectura.

Personalizable

Devuelve una instancia de atributo que indica la compatibilidad con la personalización. Este campo es de sólo lectura.

SharedPersonalizable

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

UserPersonalizable

Devuelve una instancia de atributo que indica la compatibilidad con la personalización en User el ámbito. Este campo es de sólo lectura.

Propiedades

Nombre Description
IsPersonalizable

Obtiene la configuración que indica si el atributo se puede personalizar, según lo establecido por uno de los constructores.

IsSensitive

Obtiene la configuración que indica si el atributo es confidencial, según lo establecido por uno de los constructores.

Scope

Obtiene el PersonalizationScope valor de enumeración de la instancia de clase, tal y como establece uno de los constructores.

TypeId

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

(Heredado de Attribute)

Métodos

Nombre Description
Equals(Object)

Cuando se invalida, devuelve una evaluación booleana de la instancia actual de PersonalizableAttribute y otra PersonalizableAttribute instancia proporcionada como parámetro.

GetHashCode()

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

GetPersonalizableProperties(Type)

Devuelve una colección de PropertyInfo objetos para las propiedades que coinciden con el tipo de parámetro y se marcan 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 estático Default .

Match(Object)

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

MemberwiseClone()

Crea una copia superficial del Objectactual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Implementaciones de interfaz explícitas

Nombre Description
_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)

Recupera la información de tipo de un objeto, que se puede usar para obtener la información de tipo 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 propiedades y métodos expuestos por un objeto .

(Heredado de Attribute)

Se aplica a