PersonalizableAttribute Klas

Definitie

Vertegenwoordigt het kenmerk personalisatie. Deze klasse kan niet worden overgenomen.

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
Overname
PersonalizableAttribute
Kenmerken

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u de PersonalizableAttribute klasse in code gebruikt. Het voorbeeld bestaat uit een .aspx pagina die verwijst naar een gebruikersbeheer voor webonderdelen met de naam ColorSelector.ascx. De volgende code is het .aspx-bestand voor het voorbeeld.

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

De volgende code is voor het ColorSelector.ascx besturingselement.

Important

Dit voorbeeld heeft een tekstvak dat gebruikersinvoer accepteert. Dit is een mogelijke beveiligingsrisico. Standaard valideren ASP.NET webpagina's dat gebruikersinvoer geen script- of HTML-elementen bevat. Zie Overzicht van Script Exploits voor meer informatie.

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

Opmerkingen

Het kenmerk personalisatie, Personalizablewordt toegepast op eigenschappen van openbare controle die persoonlijke instellingen moeten behouden. ASP.NET de code automatisch genereert om deze waarden op te slaan of op te halen uit het onderliggende gegevensarchief wanneer het besturingselement zich in een webonderdelenzone op een pagina met webonderdelen bevindt.

Aan de volgende vereisten moet worden voldaan om een eigenschap te markeren als aanpasbaar:

  • De eigenschap moet openbaar zijn en moet openbare toegangsrechten hebben en instellen.

  • De eigenschap moet een lees-/schrijfeigenschap zijn.

  • De eigenschap moet zonder parameters zijn.

  • De eigenschap kan niet worden geïndexeerd.

Code wordt automatisch gegenereerd om persoonlijke gegevens voor eigenschappen te laden en op te slaan. Eigenschappen die persoonlijke instellingen ondersteunen, worden bepaald op basis van het bestaan van dit kenmerk op de eigenschap en het feit dat de eigenschap voldoet aan de bovenstaande beperkingen.

Houd er rekening mee dat alleen-lezen- en alleen-schrijven-eigenschappen niet worden ondersteund voor persoonlijke instellingen. Het toepassen van dit kenmerk op een eigenschap alleen-lezen of alleen-schrijven resulteert in een HttpException gegenereerde fout. Geparameteriseerde eigenschappen genereren ook een HttpException uitzondering.

Afzonderlijke eigenschappen zonder dit kenmerk worden uitgesloten van persoonlijke instellingen als er geen speciale verwerking via de IPersonalizable interface wordt gebruikt.

Zie Overzicht van persoonlijke instellingen voor webonderdelen voor meer informatie over het gebruik van kenmerken.

Constructors

Name Description
PersonalizableAttribute()

Initialiseert een nieuw exemplaar van de PersonalizableAttribute klasse.

PersonalizableAttribute(Boolean)

Initialiseert een nieuw exemplaar van de PersonalizableAttribute klasse met behulp van de opgegeven parameter.

PersonalizableAttribute(PersonalizationScope, Boolean)

Initialiseert een nieuw exemplaar van de PersonalizableAttribute klasse met behulp van de opgegeven parameters.

PersonalizableAttribute(PersonalizationScope)

Initialiseert een nieuw exemplaar van de PersonalizableAttribute klasse met behulp van de opgegeven parameter.

Velden

Name Description
Default

Retourneert een kenmerkexemplaren die geen ondersteuning voor persoonlijke instellingen aangeeft. Dit veld is alleen-lezen.

NotPersonalizable

Retourneert een kenmerkexemplaren die geen ondersteuning voor persoonlijke instellingen aangeeft. Dit veld is alleen-lezen.

Personalizable

Retourneert een kenmerkexemplaren die ondersteuning voor persoonlijke instellingen aangeeft. Dit veld is alleen-lezen.

SharedPersonalizable

Retourneert een kenmerkexemplaren die ondersteuning voor persoonlijke instellingen met een gedeeld bereik aangeeft. Dit veld is alleen-lezen.

UserPersonalizable

Retourneert een kenmerkexemplaren die ondersteuning voor persoonlijke instellingen binnen User het bereik aangeeft. Dit veld is alleen-lezen.

Eigenschappen

Name Description
IsPersonalizable

Hiermee wordt de instelling opgehaald die aangeeft of het kenmerk kan worden aangepast, zoals ingesteld door een van de constructors.

IsSensitive

Hiermee wordt de instelling opgehaald die aangeeft of het kenmerk gevoelig is, zoals ingesteld door een van de constructors.

Scope

Hiermee haalt u de PersonalizationScope opsommingswaarde voor het klasse-exemplaar op, zoals ingesteld door een van de constructors.

TypeId

Wanneer deze wordt geïmplementeerd in een afgeleide klasse, krijgt u Attributehiervoor een unieke id.

(Overgenomen van Attribute)

Methoden

Name Description
Equals(Object)

Wanneer dit wordt overschreven, wordt een Booleaanse evaluatie geretourneerd van het huidige exemplaar van PersonalizableAttribute en een ander PersonalizableAttribute exemplaar dat is opgegeven als parameter.

GetHashCode()

Wanneer deze wordt overschreven, wordt een hash-code van het kenmerk geretourneerd.

GetPersonalizableProperties(Type)

Retourneert een verzameling PropertyInfo objecten voor de eigenschappen die overeenkomen met het parametertype en die zijn gemarkeerd als persoonlijk.

GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
IsDefaultAttribute()

Wanneer deze wordt overschreven, wordt een waarde geretourneerd die aangeeft of het kenmerkexemplaren gelijk zijn aan de waarde van het statische Default veld.

Match(Object)

Retourneert een waarde die aangeeft of het huidige exemplaar van PersonalizableAttribute en de opgegeven PersonalizableAttribute dezelfde eigenschapswaarde IsPersonalizable hebben.

MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
ToString()

Retourneert een tekenreeks die het huidige object vertegenwoordigt.

(Overgenomen van Object)

Expliciete interface-implementaties

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

Hiermee wordt een set namen toegewezen aan een bijbehorende set verzend-id's.

(Overgenomen van Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Hiermee haalt u de typegegevens voor een object op, die kan worden gebruikt om de typegegevens voor een interface op te halen.

(Overgenomen van Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Hiermee wordt het aantal type-informatieinterfaces opgehaald dat een object biedt (0 of 1).

(Overgenomen van Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Biedt toegang tot eigenschappen en methoden die door een object worden weergegeven.

(Overgenomen van Attribute)

Van toepassing op