PersonalizableAttribute Klasse

Definition

Stellt das Personalisierungsattribut dar.Represents the personalization attribute. Diese Klasse kann nicht vererbt werden.This class cannot be inherited.

public ref class PersonalizableAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Property)]
public sealed class PersonalizableAttribute : Attribute
type PersonalizableAttribute = class
    inherit Attribute
Public NotInheritable Class PersonalizableAttribute
Inherits Attribute
Vererbung
PersonalizableAttribute
Attribute

Beispiele

Im folgenden Codebeispiel wird die Verwendung der PersonalizableAttribute -Klasse im Code veranschaulicht.The following code example demonstrates how to use the PersonalizableAttribute class in code. Das Beispiel besteht aus einer ASPX-Seite, die auf ein webpartbenutzersteuerelement namens ColorSelector.ascxverweist.The sample consists of an .aspx page that references a Web Part user control called ColorSelector.ascx. Der folgende Code ist die ASPX-Datei für das Beispiel.The following code is the .aspx file for the example.

<%@ 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>
        &nbsp;<asp:LoginName ID="LoginName1" runat="server" />
        &nbsp;
        <asp:LoginStatus ID="LoginStatus1" runat="server" LogoutAction="RedirectToLoginPage" />
        &nbsp;&nbsp;&nbsp;&nbsp;<br />
        <br />
        &nbsp;<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 ist für das ColorSelector.ascx -Steuerelement vorgesehen.The following code is for the ColorSelector.ascx control.

Wichtig

Dieses Beispiel umfasst ein Textfeld, das Benutzereingaben akzeptiert, die ein potenzielles Sicherheitsrisiko darstellen.This example has a text box that accepts user input, which is a potential security threat. Standardmäßig stellen ASP.NET-Webseiten sicher, dass Benutzereingaben keine Skript- oder HTML-Elemente enthalten.By default, ASP.NET Web pages validate that user input does not include script or HTML elements. Weitere Informationen finden Sie unter Übersicht über Skriptangriffe.For more information, see Script Exploits Overview.

<%@ 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"  /> 
        &nbsp;&nbsp;
        <asp:button runat="server"  id="_greenButton" text="Green" />
        &nbsp;&nbsp;
        <asp:button runat="server" id="_blueButton" text="Blue" />
    </div>
</body>

Hinweise

Das Personalisierungs Attribut Personalizablewird auf öffentliche Steuerelement Eigenschaften angewendet, die Personalisierungs Informationen beibehalten müssen.The personalization attribute, Personalizable, is applied to public control properties that need to persist personalization information. ASP.NET generiert automatisch den Code, um diese Werte dauerhaft aus dem zugrunde liegenden Datenspeicher zu speichern oder abzurufen, wenn sich das Steuerelement in einer Webparts Zone auf einer Webparts Seite befindet.ASP.NET automatically generates the code to persist or retrieve these values from the underlying data store when the control is in a Web Parts zone on a Web Parts page.

Die folgenden Anforderungen müssen erfüllt sein, damit eine Eigenschaft als personalisierbar markiert werden muss:The following requirements must be met for a property to be marked as personalizable:

  • Die-Eigenschaft muss öffentlich sein und über öffentliche get-und Set-Accessoren verfügen.The property must be public and must have public get and set accessors.

  • Die Eigenschaft muss eine Eigenschaft mit Lese-/Schreibzugriff sein.The property must be a read/write property.

  • Die-Eigenschaft muss ohne Parameter sein.The property must be without parameters.

  • Die-Eigenschaft kann nicht indiziert werden.The property cannot be indexed.

Der Code wird automatisch generiert, um Personalisierungs Daten für Eigenschaften zu laden und zu speichern.Code is automatically generated to load and save personalization data for properties. Eigenschaften, die die Personalisierung unterstützen, werden basierend auf dem vorhanden sein dieses Attributs für die Eigenschaft und der Tatsache bestimmt, dass die Eigenschaft den oben aufgeführten Einschränkungen entspricht.Properties that support personalization are determined based on the existence of this attribute on the property and the fact that the property conforms to the constraints listed above.

Beachten Sie, dass schreibgeschützte und Lese geschützte Eigenschaften nicht für die Personalisierung unterstützt werden.Note that read-only and write-only properties are not supported for personalization. Das Anwenden dieses Attributs auf eine schreibgeschützte oder schreibgeschützte Eigenschaft führt dazu, HttpException dass eine ausgelöst wird.Applying this attribute to a read-only or write-only property results in an HttpException being thrown. Parametrisierte Eigenschaften lösen auch eine HttpException Ausnahme aus.Parameterized properties also throw an HttpException exception.

Einzelne Eigenschaften ohne dieses Attribut werden von der Personalisierung ausgeschlossen, wenn keine besondere Behandlung IPersonalizable durch die Schnittstelle verwendet wird.Individual properties without this attribute are excluded from personalization if no special handling through the IPersonalizable interface is used.

Weitere Informationen zum Verwenden von Attributen finden Sie unter Übersicht über die Webparts Personalisierung.For more information about using attributes, see Web Parts Personalization Overview.

Konstruktoren

PersonalizableAttribute()

Initialisiert eine neue Instanz der PersonalizableAttribute-Klasse.Initializes a new instance of the PersonalizableAttribute class.

PersonalizableAttribute(Boolean)

Initialisiert eine neue Instanz der PersonalizableAttribute-Klasse unter Verwendung des angegebenen Parameters.Initializes a new instance of the PersonalizableAttribute class using the provided parameter.

PersonalizableAttribute(PersonalizationScope)

Initialisiert eine neue Instanz der PersonalizableAttribute-Klasse unter Verwendung des angegebenen Parameters.Initializes a new instance of the PersonalizableAttribute class using the provided parameter.

PersonalizableAttribute(PersonalizationScope, Boolean)

Initialisiert eine neue Instanz der PersonalizableAttribute-Klasse unter Verwendung der angegebenen Parameter.Initializes a new instance of the PersonalizableAttribute class using the provided parameters.

Felder

Default

Gibt eine Attributinstanz zurück, die angibt, dass die Personalisierung nicht unterstützt wird.Returns an attribute instance that indicates no support for personalization. Dieses Feld ist schreibgeschützt.This field is read-only.

NotPersonalizable

Gibt eine Attributinstanz zurück, die angibt, dass die Personalisierung nicht unterstützt wird.Returns an attribute instance that indicates no support for personalization. Dieses Feld ist schreibgeschützt.This field is read-only.

Personalizable

Gibt eine Attributinstanz zurück, die angibt, dass die Personalisierung unterstützt wird.Returns an attribute instance that indicates support for personalization. Dieses Feld ist schreibgeschützt.This field is read-only.

SharedPersonalizable

Gibt eine Attributinstanz zurück, die angibt, dass die Personalisierung mit einem shared-Bereich unterstützt wird.Returns an attribute instance that indicates support for personalization with a shared scope. Dieses Feld ist schreibgeschützt.This field is read-only.

UserPersonalizable

Gibt eine Attributinstanz zurück, die angibt, dass die Personalisierung im User-Bereich unterstützt wird.Returns an attribute instance that indicates support for personalization in User scope. Dieses Feld ist schreibgeschützt.This field is read-only.

Eigenschaften

IsPersonalizable

Ruft die Einstellung ab, die angibt, ob das Attribut personalisiert werden kann, wie von einem der Konstruktoren festgelegt.Gets the setting that indicates whether the attribute can be personalized, as established by one of the constructors.

IsSensitive

Ruft die Einstellung ab, die angibt, ob das Attribut vertraulich ist, wie von einem der Konstruktoren festgelegt.Gets the setting that indicates whether the attribute is sensitive, as established by one of the constructors.

Scope

Ruft den PersonalizationScope-Enumerationswert für die Klasseninstanz ab, der von einem der Konstruktoren festgelegt wurde.Gets the PersonalizationScope enumeration value for the class instance, as set by one of the constructors.

TypeId

Ruft bei Implementierung in einer abgeleiteten Klasse einen eindeutigen Bezeichner für dieses Attribute ab.When implemented in a derived class, gets a unique identifier for this Attribute.

(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.When overridden, returns a Boolean evaluation of the current instance of PersonalizableAttribute and another PersonalizableAttribute instance supplied as a parameter.

GetHashCode()

Gibt einen Hashcode des Attributs zurück, wenn es überschrieben wurde.When overridden, returns a hash code of the attribute.

GetPersonalizableProperties(Type)

Gibt eine Auflistung von PropertyInfo-Objekten für die Eigenschaften zurück, die mit dem Parametertyp übereinstimmen und als personalisierbar gekennzeichnet sind.Returns a collection of PropertyInfo objects for the properties that match the parameter type and are marked as personalizable.

GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Geerbt von Object)
IsDefaultAttribute()

Gibt beim Überschreiben einen Wert zurück, der angibt, ob die Attributinstanz gleich dem Wert des statischen Default-Felds ist.When overridden, returns a value that indicates whether the attribute instance equals the value of the static Default field.

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.Returns a value that indicates whether the current instance of PersonalizableAttribute and the specified PersonalizableAttribute have the same IsPersonalizable property value.

MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

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

Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu.Maps a set of names to a corresponding set of dispatch identifiers.

(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.Retrieves the type information for an object, which can be used to get the type information for an interface.

(Geerbt von Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1).Retrieves the number of type information interfaces that an object provides (either 0 or 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.Provides access to properties and methods exposed by an object.

(Geerbt von Attribute)

Gilt für: