PersonalizableAttribute Klasa

Definicja

Reprezentuje atrybut personalizacji. Klasa ta nie może być dziedziczona.

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
Dziedziczenie
PersonalizableAttribute
Atrybuty

Przykłady

W poniższym przykładzie kodu pokazano, jak używać PersonalizableAttribute klasy w kodzie. Przykład składa się ze strony aspx, która odwołuje się do kontrolki użytkownika składnika Web Part o nazwie ColorSelector.ascx. Poniższy kod to na przykład plik aspx.

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

Poniższy kod jest przeznaczony dla kontrolki ColorSelector.ascx .

Ważne

Ten przykład zawiera pole tekstowe, które akceptuje dane wejściowe użytkownika, co jest potencjalnym zagrożeniem bezpieczeństwa. Domyślnie ASP.NET strony sieci Web sprawdzają, czy dane wejściowe użytkownika nie zawierają skryptów ani elementów HTML. Aby uzyskać więcej informacji, zobacz Script Exploits Overview (Omówienie luk w zabezpieczeniach skryptów).

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

Uwagi

Atrybut personalizacji, Personalizable, jest stosowany do właściwości kontroli publicznej, które muszą utrwalać informacje o personalizacji. ASP.NET automatycznie generuje kod do utrwalania lub pobierania tych wartości z bazowego magazynu danych, gdy kontrolka znajduje się w strefie składników Web Part na stronie składników Web Part.

Aby właściwość została oznaczona jako personalizowalna, należy spełnić następujące wymagania:

  • Właściwość musi być publiczna i musi mieć publiczne metody pobierania i ustawiania metod dostępu.

  • Właściwość musi być właściwością odczytu/zapisu.

  • Właściwość musi być bez parametrów.

  • Nie można zaindeksować właściwości.

Kod jest generowany automatycznie w celu załadowania i zapisania danych personalizacji dla właściwości. Właściwości obsługujące personalizację są określane na podstawie istnienia tego atrybutu we właściwości i faktu, że właściwość jest zgodna z ograniczeniami wymienionymi powyżej.

Należy pamiętać, że właściwości tylko do odczytu i tylko do zapisu nie są obsługiwane w przypadku personalizacji. Zastosowanie tego atrybutu do właściwości tylko do odczytu lub tylko do zapisu powoduje HttpException zgłoszenie. Właściwości sparametryzowane zgłaszają HttpException również wyjątek.

Pojedyncze właściwości bez tego atrybutu są wykluczane z personalizacji, jeśli nie jest używana żadna specjalna obsługa za pośrednictwem interfejsu IPersonalizable .

Aby uzyskać więcej informacji na temat używania atrybutów, zobacz Web Part Personalization Overview (Omówienie personalizacji składników Web Part).

Konstruktory

PersonalizableAttribute()

Inicjuje nowe wystąpienie klasy PersonalizableAttribute.

PersonalizableAttribute(Boolean)

Inicjuje PersonalizableAttribute nowe wystąpienie klasy przy użyciu podanego parametru.

PersonalizableAttribute(PersonalizationScope)

Inicjuje PersonalizableAttribute nowe wystąpienie klasy przy użyciu podanego parametru.

PersonalizableAttribute(PersonalizationScope, Boolean)

Inicjuje PersonalizableAttribute nowe wystąpienie klasy przy użyciu podanych parametrów.

Pola

Default

Zwraca wystąpienie atrybutu, które nie wskazuje obsługi personalizacji. To pole jest tylko do odczytu.

NotPersonalizable

Zwraca wystąpienie atrybutu, które nie wskazuje obsługi personalizacji. To pole jest tylko do odczytu.

Personalizable

Zwraca wystąpienie atrybutu wskazujące obsługę personalizacji. To pole jest tylko do odczytu.

SharedPersonalizable

Zwraca wystąpienie atrybutu wskazujące obsługę personalizacji z zakresem udostępnionym. To pole jest tylko do odczytu.

UserPersonalizable

Zwraca wystąpienie atrybutu wskazujące obsługę personalizacji w User zakresie. To pole jest tylko do odczytu.

Właściwości

IsPersonalizable

Pobiera ustawienie wskazujące, czy atrybut może być spersonalizowany zgodnie z ustaleniami jednego z konstruktorów.

IsSensitive

Pobiera ustawienie wskazujące, czy atrybut jest poufny zgodnie z ustaleniami jednego z konstruktorów.

Scope

PersonalizationScope Pobiera wartość wyliczenia dla wystąpienia klasy zgodnie z ustawieniem jednego z konstruktorów.

TypeId

Po zaimplementowaniu w klasie pochodnej pobiera unikatowy identyfikator dla tego Attributeelementu .

(Odziedziczone po Attribute)

Metody

Equals(Object)

Po przesłonięciu funkcja zwraca wartość logiczną bieżącego wystąpienia i PersonalizableAttribute innego PersonalizableAttribute wystąpienia dostarczonego jako parametr.

GetHashCode()

Po zastąpieniu zwraca kod skrótu atrybutu.

GetPersonalizableProperties(Type)

Zwraca kolekcję PropertyInfo obiektów dla właściwości, które są zgodne z typem parametru i są oznaczone jako możliwe do personalizacji.

GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
IsDefaultAttribute()

Po przesłonięciu zwraca wartość wskazującą, czy wystąpienie atrybutu jest równe wartości pola statycznego Default .

Match(Object)

Zwraca wartość wskazującą, czy bieżące wystąpienie klasy PersonalizableAttribute i określone PersonalizableAttribute mają tę samą IsPersonalizable wartość właściwości.

MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Jawne implementacje interfejsu

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

Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania.

(Odziedziczone po Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Pobiera informacje o typie dla obiektu, który może służyć do pobierania informacji o typie dla interfejsu.

(Odziedziczone po Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Pobiera informację o liczbie typów interfejsów, jakie zawiera obiekt (0 lub 1).

(Odziedziczone po Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Umożliwia dostęp do właściwości i metod udostępnianych przez obiekt.

(Odziedziczone po Attribute)

Dotyczy