PersonalizableAttribute Klasse

Definition

Stellt das Personalisierungsattribut dar. Diese Klasse kann nicht vererbt werden.

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
Vererbung
PersonalizableAttribute
Attribute

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie die PersonalizableAttribute -Klasse im Code verwendet wird. Das Beispiel besteht aus einer ASPX-Seite, die auf ein Webpartbenutzersteuerelement namens ColorSelector.ascxverweist. Der folgende Code ist die ASPX-Datei für das Beispiel.

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

Der folgende Code gilt für das ColorSelector.ascx Steuerelement.

Wichtig

Dieses Beispiel umfasst ein Textfeld, das Benutzereingaben akzeptiert, die ein potenzielles Sicherheitsrisiko darstellen. Standardmäßig stellen ASP.NET-Webseiten sicher, dass Benutzereingaben keine Skript- oder HTML-Elemente enthalten. Weitere Informationen finden Sie unter Übersicht über Skriptangriffe.

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

Hinweise

Das Personalisierungsattribut wird auf öffentliche Steuerelementeigenschaften angewendet, Personalizabledie Personalisierungsinformationen beibehalten müssen. ASP.NET generiert automatisch den Code zum Beibehalten oder Abrufen dieser Werte aus dem zugrunde liegenden Datenspeicher, wenn sich das Steuerelement in einer Webpartzone auf einer Webpartseite befindet.

Die folgenden Voraussetzungen müssen erfüllt sein, damit eine Eigenschaft als personalisierbar gekennzeichnet werden kann:

  • Die Eigenschaft muss öffentlich sein und über öffentliche Get- und Set-Accessoren verfügen.

  • Die Eigenschaft muss eine Lese-/Schreibeigenschaft sein.

  • Die Eigenschaft muss ohne Parameter sein.

  • Die Eigenschaft kann nicht indiziert werden.

Code wird automatisch generiert, um Personalisierungsdaten für Eigenschaften zu laden und zu speichern. Eigenschaften, die die Personalisierung unterstützen, werden basierend auf dem Vorhandensein dieses Attributs für die -Eigenschaft und der Tatsache bestimmt, dass die Eigenschaft den oben aufgeführten Einschränkungen entspricht.

Beachten Sie, dass schreibgeschützte und schreibgeschützte Eigenschaften für die Personalisierung nicht unterstützt werden. Das Anwenden dieses Attributs auf eine schreibgeschützte oder schreibgeschützte Eigenschaft führt dazu, dass eine HttpException ausgelöst wird. Parametrisierte Eigenschaften lösen auch eine Ausnahme aus HttpException .

Einzelne Eigenschaften ohne dieses Attribut werden von der Personalisierung ausgeschlossen, wenn keine spezielle Verarbeitung über die IPersonalizable Schnittstelle verwendet wird.

Weitere Informationen zur Verwendung von Attributen finden Sie unter Übersicht über die Personalisierung von Webparts.

Konstruktoren

PersonalizableAttribute()

Initialisiert eine neue Instanz der PersonalizableAttribute-Klasse.

PersonalizableAttribute(Boolean)

Initialisiert eine neue Instanz der PersonalizableAttribute-Klasse unter Verwendung des angegebenen Parameters.

PersonalizableAttribute(PersonalizationScope)

Initialisiert eine neue Instanz der PersonalizableAttribute-Klasse unter Verwendung des angegebenen Parameters.

PersonalizableAttribute(PersonalizationScope, Boolean)

Initialisiert eine neue Instanz der PersonalizableAttribute-Klasse unter Verwendung der angegebenen Parameter.

Felder

Default

Gibt eine Attributinstanz zurück, die angibt, dass die Personalisierung nicht unterstützt wird. Dieses Feld ist schreibgeschützt.

NotPersonalizable

Gibt eine Attributinstanz zurück, die angibt, dass die Personalisierung nicht unterstützt wird. Dieses Feld ist schreibgeschützt.

Personalizable

Gibt eine Attributinstanz zurück, die angibt, dass die Personalisierung unterstützt wird. Dieses Feld ist schreibgeschützt.

SharedPersonalizable

Gibt eine Attributinstanz zurück, die angibt, dass die Personalisierung mit einem shared-Bereich unterstützt wird. Dieses Feld ist schreibgeschützt.

UserPersonalizable

Gibt eine Attributinstanz zurück, die angibt, dass die Personalisierung im User-Bereich unterstützt wird. Dieses Feld ist schreibgeschützt.

Eigenschaften

IsPersonalizable

Ruft die Einstellung ab, die angibt, ob das Attribut personalisiert werden kann, wie von einem der Konstruktoren festgelegt.

IsSensitive

Ruft die Einstellung ab, die angibt, ob das Attribut vertraulich ist, wie von einem der Konstruktoren festgelegt.

Scope

Ruft den PersonalizationScope-Enumerationswert für die Klasseninstanz ab, der von einem der Konstruktoren festgelegt wurde.

TypeId

Ruft bei Implementierung in einer abgeleiteten Klasse einen eindeutigen Bezeichner für dieses Attribute ab.

(Geerbt von Attribute)

Methoden

Equals(Object)

Beim Überschreiben der Eigenschaft wird eine boolesche Auswertung der aktuellen Instanz von PersonalizableAttribute und einer weiteren PersonalizableAttribute-Instanz als Parameter übergeben.

GetHashCode()

Gibt einen Hashcode des Attributs zurück, wenn es überschrieben wurde.

GetPersonalizableProperties(Type)

Gibt eine Auflistung von PropertyInfo-Objekten für die Eigenschaften zurück, die mit dem Parametertyp übereinstimmen und als personalisierbar gekennzeichnet sind.

GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
IsDefaultAttribute()

Gibt beim Überschreiben einen Wert zurück, der angibt, ob die Attributinstanz gleich dem Wert des statischen Default-Felds ist.

Match(Object)

Gibt einen Wert zurück, der angibt, ob die aktuelle Instanz von PersonalizableAttribute und das angegebene PersonalizableAttribute über denselben IsPersonalizable-Eigenschaftswert verfügen.

MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

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

Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu.

(Geerbt von Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Ruft die Typinformationen für ein Objekt ab, mit deren Hilfe die Typinformationen für eine Schnittstelle abgerufen werden können.

(Geerbt von Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1).

(Geerbt von Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Stellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit.

(Geerbt von Attribute)

Gilt für: