PersonalizableAttribute Classe

Definição

Representa o atributo de personalização. Essa classe não pode ser herdada.

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
Herança
PersonalizableAttribute
Atributos

Exemplos

O exemplo de código a seguir demonstra como usar a PersonalizableAttribute classe no código. O exemplo consiste em uma página .aspx que faz referência a um controle de usuário de Web Part chamado ColorSelector.ascx. O código a seguir é o arquivo .aspx do exemplo.

<%@ 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>

O código a seguir é para o ColorSelector.ascx controle .

Importante

Este exemplo tem uma caixa de texto que aceita a entrada do usuário, que é uma possível ameaça à segurança. Por padrão, ASP.NET páginas da Web validam que a entrada do usuário não inclui elementos html ou script. Para obter mais informações, consulte Visão geral de explorações 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>

Comentários

O atributo de personalização, Personalizable, é aplicado a propriedades de controle público que precisam persistir informações de personalização. ASP.NET gera automaticamente o código para persistir ou recuperar esses valores do armazenamento de dados subjacente quando o controle está em uma zona de Web Parts em uma página de Web Parts.

Os seguintes requisitos devem ser atendidos para que uma propriedade seja marcada como personalizável:

  • A propriedade deve ser pública e deve ter acessadores públicos get e set.

  • A propriedade deve ser uma propriedade de leitura/gravação.

  • A propriedade deve estar sem parâmetros.

  • A propriedade não pode ser indexada.

O código é gerado automaticamente para carregar e salvar dados de personalização para propriedades. As propriedades que dão suporte à personalização são determinadas com base na existência desse atributo na propriedade e no fato de que a propriedade está em conformidade com as restrições listadas acima.

Observe que não há suporte para propriedades somente leitura e somente gravação para personalização. Aplicar esse atributo a uma propriedade somente leitura ou somente gravação resulta em um HttpException sendo gerado. As propriedades parametrizadas também geram uma exceção HttpException .

Propriedades individuais sem esse atributo serão excluídas da personalização se nenhum tratamento especial por meio da IPersonalizable interface for usado.

Para obter mais informações sobre como usar atributos, consulte Visão geral de personalização de Web Parts.

Construtores

PersonalizableAttribute()

Inicializa uma nova instância da classe PersonalizableAttribute.

PersonalizableAttribute(Boolean)

Inicializa uma nova instância da classe PersonalizableAttribute usando o parâmetro fornecido.

PersonalizableAttribute(PersonalizationScope)

Inicializa uma nova instância da classe PersonalizableAttribute usando o parâmetro fornecido.

PersonalizableAttribute(PersonalizationScope, Boolean)

Inicializa uma nova instância da classe PersonalizableAttribute usando os parâmetros fornecidos.

Campos

Default

Retorna uma instância do atributo que indica que não há suporte para personalização. Este campo é somente leitura.

NotPersonalizable

Retorna uma instância do atributo que indica que não há suporte para personalização. Este campo é somente leitura.

Personalizable

Retorna uma instância do atributo que indica que há suporte para personalização. Este campo é somente leitura.

SharedPersonalizable

Retorna uma instância do atributo que indica que há suporte para personalização com um escopo compartilhado. Este campo é somente leitura.

UserPersonalizable

Retorna uma instância do atributo que indica que há suporte para personalização no escopo de User. Este campo é somente leitura.

Propriedades

IsPersonalizable

Obtém a configuração que indica se o atributo pode ser personalizado, conforme estabelecido por um dos construtores.

IsSensitive

Obtém a configuração que indica se o atributo é sensível, conforme estabelecido por um dos construtores.

Scope

Obtém o valor de enumeração PersonalizationScope para a instância de classe conforme definido por um dos construtores.

TypeId

Quando implementado em uma classe derivada, obtém um identificador exclusivo para este Attribute.

(Herdado de Attribute)

Métodos

Equals(Object)

Quando substituído, retorna uma avaliação booliana da instância atual do PersonalizableAttribute e outra instância de PersonalizableAttribute fornecida como um parâmetro.

GetHashCode()

Quando substituído, retorna um código hash do atributo.

GetPersonalizableProperties(Type)

Retorna uma coleção de objetos PropertyInfo para as propriedades que correspondem ao tipo de parâmetro e são marcadas como personalizáveis.

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
IsDefaultAttribute()

Quando substituído, retorna um valor que indica se a instância do atributo é igual ao valor do campo Default estático.

Match(Object)

Retorna um valor que indica se a instância atual do PersonalizableAttribute e do PersonalizableAttribute especificado têm o mesmo valor da propriedade IsPersonalizable.

MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Implantações explícitas de interface

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

Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de expedição.

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

Recupera as informações de tipo para um objeto, que pode ser usado para obter as informações de tipo para uma interface.

(Herdado de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Retorna o número de interfaces de informações do tipo que um objeto fornece (0 ou 1).

(Herdado de Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fornece acesso a propriedades e métodos expostos por um objeto.

(Herdado de Attribute)

Aplica-se a