PersonalizableAttribute Classe

Définition

Représente l'attribut de personnalisation. Cette classe ne peut pas être héritée.

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
Héritage
PersonalizableAttribute
Attributs

Exemples

L’exemple de code suivant montre comment utiliser la classe dans le PersonalizableAttribute code. L’exemple se compose d’une page .aspx qui fait référence à un contrôle utilisateur de composant WebPart appelé ColorSelector.ascx. Le code suivant est le fichier .aspx de l’exemple.

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

Le code suivant concerne le ColorSelector.ascx contrôle.

Important

Cet exemple comprend une zone de texte qui accepte une entrée d'utilisateur, ce qui constitue une menace potentielle pour la sécurité. Par défaut, les pages web ASP.NET vérifient que l’entrée d’utilisateur n’inclut pas de script ou d’éléments HTML. Pour plus d’informations, consultez Vue d’ensemble des attaques 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>

Remarques

L’attribut de personnalisation, Personalizable, est appliqué aux propriétés de contrôle public qui doivent conserver les informations de personnalisation. ASP.NET génère automatiquement le code pour conserver ou récupérer ces valeurs à partir du magasin de données sous-jacent lorsque le contrôle se trouve dans une zone de composants WebPart sur une page de composants WebPart.

Les conditions suivantes doivent être remplies pour qu’une propriété soit marquée comme personnalisable :

  • La propriété doit être publique et doit avoir des accesseurs d’obtention et de définition publics.

  • La propriété doit être une propriété en lecture/écriture.

  • La propriété doit être sans paramètres.

  • La propriété ne peut pas être indexée.

Le code est généré automatiquement pour charger et enregistrer les données de personnalisation pour les propriétés. Les propriétés qui prennent en charge la personnalisation sont déterminées en fonction de l’existence de cet attribut sur la propriété et du fait que la propriété est conforme aux contraintes répertoriées ci-dessus.

Notez que les propriétés en lecture seule et en écriture seule ne sont pas prises en charge pour la personnalisation. L’application de cet attribut à une propriété en lecture seule ou en écriture seule entraîne la levée d’un HttpException attribut. Les propriétés paramétrables lèvent également une HttpException exception.

Les propriétés individuelles sans cet attribut sont exclues de la personnalisation si aucune gestion spéciale via l’interface IPersonalizable n’est utilisée.

Pour plus d’informations sur l’utilisation des attributs, consultez Vue d’ensemble de la personnalisation des composants WebPart.

Constructeurs

PersonalizableAttribute()

Initialise une nouvelle instance de la classe PersonalizableAttribute.

PersonalizableAttribute(Boolean)

Initialise une nouvelle instance de la classe PersonalizableAttribute avec le paramètre fourni.

PersonalizableAttribute(PersonalizationScope)

Initialise une nouvelle instance de la classe PersonalizableAttribute avec le paramètre fourni.

PersonalizableAttribute(PersonalizationScope, Boolean)

Initialise une nouvelle instance de la classe PersonalizableAttribute avec les paramètres fournis.

Champs

Default

Retourne une instance de l'attribut qui n'indique aucune prise en charge de la personnalisation. Ce champ est en lecture seule.

NotPersonalizable

Retourne une instance de l'attribut qui n'indique aucune prise en charge de la personnalisation. Ce champ est en lecture seule.

Personalizable

Retourne une instance de l'attribut qui indique la prise en charge de la personnalisation. Ce champ est en lecture seule.

SharedPersonalizable

Retourne une instance de l'attribut qui indique la prise en charge de la personnalisation avec une portée partagée. Ce champ est en lecture seule.

UserPersonalizable

Retourne une instance de l'attribut indiquant la prise en charge de la personnalisation dans la portée User. Ce champ est en lecture seule.

Propriétés

IsPersonalizable

Obtient le paramètre indiquant si l'attribut peut être personnalisé, comme établi par l'un des constructeurs.

IsSensitive

Obtient le paramètre qui indique si l'attribut est sensible, comme établi par l'un des constructeurs.

Scope

Obtient la valeur d'énumération PersonalizationScope pour l'instance de classe, comme défini par l'un des constructeurs.

TypeId

Lors de l'implémentation dans une classe dérivée, obtient un identificateur unique pour l'objet Attribute.

(Hérité de Attribute)

Méthodes

Equals(Object)

En cas de substitution, retourne une évaluation Boolean de l'instance actuelle de PersonalizableAttribute et une autre instance de PersonalizableAttribute fournie comme paramètre.

GetHashCode()

En cas de substitution, retourne un code de hachage de l'attribut.

GetPersonalizableProperties(Type)

Retourne une collection d'objets PropertyInfo pour les propriétés qui correspondent au type de paramètre et sont marquées comme personnalisables.

GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
IsDefaultAttribute()

En cas de substitution, retourne une valeur indiquant si l'instance de l'attribut est égale la valeur du champ Default statique.

Match(Object)

Retourne une valeur indiquant si l'instance actuelle de PersonalizableAttribute et le PersonalizableAttribute spécifié possèdent la même valeur de la propriété IsPersonalizable.

MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

Implémentations d’interfaces explicites

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

Mappe un jeu de noms avec un jeu correspondant d'identificateurs de dispatch.

(Hérité de Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Récupère les informations de type pour un objet, qui peuvent être utilisées pour obtenir les informations de type d'une interface.

(Hérité de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Récupère le nombre d'interfaces d'informations de type fourni par un objet (0 ou 1).

(Hérité de Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fournit l'accès aux propriétés et aux méthodes exposées par un objet.

(Hérité de Attribute)

S’applique à