PersonalizableAttribute Classe

Definizione

Rappresenta l'attributo di personalizzazione. La classe non può essere ereditata.

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
Ereditarietà
PersonalizableAttribute
Attributi

Esempio

Nell'esempio di codice seguente viene illustrato come usare la PersonalizableAttribute classe nel codice. L'esempio è costituito da una pagina aspx che fa riferimento a un controllo utente della Web part denominato ColorSelector.ascx. Il codice seguente è il file aspx per l'esempio.

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

Il codice seguente è per il ColorSelector.ascx controllo.

Importante

L'esempio include una casella di testo che accetta l'input dell'utente e rappresenta quindi una potenziale minaccia alla sicurezza. Per impostazione predefinita, le pagine Web ASP.NET verificano che l'input dell'utente non includa script o elementi HTML. Per altre informazioni, vedere Cenni preliminari sugli attacchi tramite 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>

Commenti

L'attributo di personalizzazione, Personalizable, viene applicato alle proprietà del controllo pubblico che devono rendere persistenti le informazioni di personalizzazione. ASP.NET genera automaticamente il codice per mantenere o recuperare questi valori dall'archivio dati sottostante quando il controllo si trova in un'area Web part in una pagina web part.

I requisiti seguenti devono essere soddisfatti per contrassegnare una proprietà come personalizzabile:

  • La proprietà deve essere pubblica e deve avere funzioni di accesso pubbliche e impostate.

  • La proprietà deve essere una proprietà di lettura/scrittura.

  • La proprietà deve essere senza parametri.

  • Impossibile indicizzare la proprietà.

Il codice viene generato automaticamente per caricare e salvare i dati di personalizzazione per le proprietà. Le proprietà che supportano la personalizzazione vengono determinate in base all'esistenza di questo attributo nella proprietà e al fatto che la proprietà sia conforme ai vincoli elencati sopra.

Si noti che le proprietà di sola lettura e di sola scrittura non sono supportate per la personalizzazione. L'applicazione di questo attributo a una proprietà di sola lettura o di sola scrittura genera un'eccezione HttpException . Le proprietà con parametri generano anche un'eccezione HttpException .

Le singole proprietà senza questo attributo vengono escluse dalla personalizzazione se non viene usata alcuna gestione speciale tramite l'interfaccia IPersonalizable .

Per altre informazioni sull'uso degli attributi, vedere Panoramica sulla personalizzazione delle web part.

Costruttori

PersonalizableAttribute()

Inizializza una nuova istanza della classe PersonalizableAttribute.

PersonalizableAttribute(Boolean)

Inizializza una nuova istanza della classe PersonalizableAttribute utilizzando il parametro fornito.

PersonalizableAttribute(PersonalizationScope)

Inizializza una nuova istanza della classe PersonalizableAttribute utilizzando il parametro fornito.

PersonalizableAttribute(PersonalizationScope, Boolean)

Inizializza una nuova istanza della classe PersonalizableAttribute utilizzando i parametri forniti.

Campi

Default

Restituisce un'istanza di attributo che indica che la personalizzazione non è supportata. Questo campo è di sola lettura.

NotPersonalizable

Restituisce un'istanza di attributo che indica che la personalizzazione non è supportata. Questo campo è di sola lettura.

Personalizable

Restituisce un'istanza di attributo che indica che la personalizzazione è supportata. Questo campo è di sola lettura.

SharedPersonalizable

Restituisce un'istanza di attributo che indica che la personalizzazione è supportata con un ambito condiviso. Questo campo è di sola lettura.

UserPersonalizable

Restituisce un'istanza di attributo che indica che la personalizzazione è supportata nell'ambito di User. Questo campo è di sola lettura.

Proprietà

IsPersonalizable

Ottiene l'impostazione che indica se l'attributo può essere personalizzato, come stabilito da uno dei costruttori.

IsSensitive

Ottiene l'impostazione che indica se l'attributo è riservato, come stabilito da uno dei costruttori.

Scope

Ottiene il valore dell'enumerazione PersonalizationScope per l'istanza della classe, come impostato da uno dei costruttori.

TypeId

Quando è implementata in una classe derivata, ottiene un identificatore univoco della classe Attribute.

(Ereditato da Attribute)

Metodi

Equals(Object)

Quando viene sottoposto a override, restituisce una valutazione Boolean dell'istanza corrente di PersonalizableAttribute e un'altra istanza di PersonalizableAttribute fornita come parametro.

GetHashCode()

Quando viene sottoposto a override, restituisce un codice hash dell'attributo.

GetPersonalizableProperties(Type)

Restituisce un insieme di oggetti PropertyInfo per le proprietà corrispondenti al tipo di parametro e contrassegnate come personalizzabili.

GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
IsDefaultAttribute()

Quando sottoposto a override, restituisce un valore che indica se l'istanza dell'attributo è uguale al valore del campo Default statico.

Match(Object)

Restituisce un valore che indica se l'istanza corrente di PersonalizableAttribute e dell'oggetto PersonalizableAttribute specificato presentano lo stesso valore della proprietà IsPersonalizable.

MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

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

Esegue il mapping di un set di nomi a un set corrispondente di ID dispatch.

(Ereditato da Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera le informazioni sul tipo relative a un oggetto, che possono essere usate per ottenere informazioni sul tipo relative a un'interfaccia.

(Ereditato da Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Recupera il numero delle interfacce di informazioni sul tipo fornite da un oggetto (0 o 1).

(Ereditato da Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fornisce l'accesso a proprietà e metodi esposti da un oggetto.

(Ereditato da Attribute)

Si applica a