PersonalizableAttribute クラス

定義

パーソナル化属性を表します。Represents the personalization attribute. このクラスは継承できません。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
継承
PersonalizableAttribute
属性

次のコード例は、コードでPersonalizableAttributeクラスを使用する方法を示しています。The following code example demonstrates how to use the PersonalizableAttribute class in code. このサンプルは、というColorSelector.ascxWeb パーツのユーザーコントロールを参照する .aspx ページで構成されています。The sample consists of an .aspx page that references a Web Part user control called ColorSelector.ascx. 次のコードは、この例の .aspx ファイルです。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>

次のコードは、 ColorSelector.ascxコントロールを対象としています。The following code is for the ColorSelector.ascx control.

重要

この例には、ユーザー入力を受け付けるテキスト ボックスがあります。これにより、セキュリティが脆弱になる可能性があります。This example has a text box that accepts user input, which is a potential security threat. 既定では、ASP.NET Web ページによって、ユーザー入力にスクリプトまたは HTML 要素が含まれていないかどうかが検証されます。By default, ASP.NET Web pages validate that user input does not include script or HTML elements. 詳細については、「スクリプトによる攻略の概要」を参照してください。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>

注釈

パーソナル化属性Personalizableは、パーソナル化情報を保持する必要があるパブリックコントロールプロパティに適用されます。The personalization attribute, Personalizable, is applied to public control properties that need to persist personalization information. ASP.NET は、コントロールが Web パーツページの Web パーツゾーンにあるときに、基になるデータストアからこれらの値を保持または取得するコードを自動的に生成します。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.

プロパティをパーソナル化可能としてマークするには、次の要件を満たす必要があります。The following requirements must be met for a property to be marked as personalizable:

  • プロパティはパブリックである必要があり、パブリックな get および set アクセサーを持つ必要があります。The property must be public and must have public get and set accessors.

  • プロパティは、読み取り/書き込みプロパティである必要があります。The property must be a read/write property.

  • プロパティは、パラメーターを指定せずに指定する必要があります。The property must be without parameters.

  • プロパティにインデックスを設定することはできません。The property cannot be indexed.

コードは、プロパティのパーソナル化データを読み込んで保存するために自動的に生成されます。Code is automatically generated to load and save personalization data for properties. パーソナル化をサポートするプロパティは、プロパティに対するこの属性の存在と、プロパティが上に示した制約に準拠しているという事実に基づいて決定されます。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.

読み取り専用プロパティと書き込み専用プロパティは、パーソナル化ではサポートされていないことに注意してください。Note that read-only and write-only properties are not supported for personalization. この属性を読み取り専用または書き込み専用のプロパティに適用すると、 HttpExceptionがスローされます。Applying this attribute to a read-only or write-only property results in an HttpException being thrown. パラメーター化されたHttpExceptionプロパティも例外をスローします。Parameterized properties also throw an HttpException exception.

インターフェイスを介した特別な処理が使用されていない場合IPersonalizable 、この属性を持たない個々のプロパティはパーソナル化から除外されます。Individual properties without this attribute are excluded from personalization if no special handling through the IPersonalizable interface is used.

属性の使用方法の詳細については、「 Web パーツパーソナル化の概要」を参照してください。For more information about using attributes, see Web Parts Personalization Overview.

コンストラクター

PersonalizableAttribute()

PersonalizableAttribute クラスの新しいインスタンスを初期化します。Initializes a new instance of the PersonalizableAttribute class.

PersonalizableAttribute(Boolean)

指定されたパラメーターを使用して、PersonalizableAttribute クラスの新しいインスタンスを初期化します。Initializes a new instance of the PersonalizableAttribute class using the provided parameter.

PersonalizableAttribute(PersonalizationScope)

指定されたパラメーターを使用して、PersonalizableAttribute クラスの新しいインスタンスを初期化します。Initializes a new instance of the PersonalizableAttribute class using the provided parameter.

PersonalizableAttribute(PersonalizationScope, Boolean)

指定されたパラメーターを使用して、PersonalizableAttribute クラスの新しいインスタンスを初期化します。Initializes a new instance of the PersonalizableAttribute class using the provided parameters.

フィールド

Default

パーソナル化をサポートしていないことを示す属性インスタンスを返します。Returns an attribute instance that indicates no support for personalization. このフィールドは読み取り専用です。This field is read-only.

NotPersonalizable

パーソナル化をサポートしていないことを示す属性インスタンスを返します。Returns an attribute instance that indicates no support for personalization. このフィールドは読み取り専用です。This field is read-only.

Personalizable

パーソナル化をサポートしていることを示す属性インスタンスを返します。Returns an attribute instance that indicates support for personalization. このフィールドは読み取り専用です。This field is read-only.

SharedPersonalizable

共有スコープでのパーソナル化をサポートしていることを示す属性インスタンスを返します。Returns an attribute instance that indicates support for personalization with a shared scope. このフィールドは読み取り専用です。This field is read-only.

UserPersonalizable

User スコープでのパーソナル化をサポートしていることを示す属性インスタンスを返します。Returns an attribute instance that indicates support for personalization in User scope. このフィールドは読み取り専用です。This field is read-only.

プロパティ

IsPersonalizable

いずれかのコンストラクターで確立された、属性をパーソナル化できるかどうかを示す設定を取得します。Gets the setting that indicates whether the attribute can be personalized, as established by one of the constructors.

IsSensitive

いずれかのコンストラクターで確立された、属性の機密性が高いかどうかを示す設定を取得します。Gets the setting that indicates whether the attribute is sensitive, as established by one of the constructors.

Scope

いずれかのコンストラクターで設定された、クラス インスタンスの PersonalizationScope 列挙値を取得します。Gets the PersonalizationScope enumeration value for the class instance, as set by one of the constructors.

TypeId

派生クラスで実装されると、この Attribute の一意の識別子を取得します。When implemented in a derived class, gets a unique identifier for this Attribute.

(継承元 Attribute)

メソッド

Equals(Object)

オーバーライドされた場合は、PersonalizableAttribute の現在のインスタンスとパラメーターとして指定された他の PersonalizableAttribute インスタンスとが等しいかどうかを評価したブール値を返します。When overridden, returns a Boolean evaluation of the current instance of PersonalizableAttribute and another PersonalizableAttribute instance supplied as a parameter.

GetHashCode()

オーバーライドされた場合は、属性のハッシュ コードを返します。When overridden, returns a hash code of the attribute.

GetPersonalizableProperties(Type)

パラメーターの型と一致し、パーソナル化可能とマークされている各プロパティの PropertyInfo オブジェクトのコレクションを返します。Returns a collection of PropertyInfo objects for the properties that match the parameter type and are marked as personalizable.

GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(継承元 Object)
IsDefaultAttribute()

オーバーライドされた場合は、属性インスタンスが静的な Default フィールドの値と等しいかどうかを示す値を返します。When overridden, returns a value that indicates whether the attribute instance equals the value of the static Default field.

Match(Object)

PersonalizableAttribute の現在のインスタンスと、指定された PersonalizableAttribute とを比較して、IsPersonalizable プロパティ値が同じかどうかを示す値を返します。Returns a value that indicates whether the current instance of PersonalizableAttribute and the specified PersonalizableAttribute have the same IsPersonalizable property value.

MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)
ToString()

現在のオブジェクトを表す string を返します。Returns a string that represents the current object.

(継承元 Object)

明示的なインターフェイスの実装

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

一連の名前を対応する一連のディスパッチ識別子に割り当てます。Maps a set of names to a corresponding set of dispatch identifiers.

(継承元 Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

オブジェクトの型情報を取得します。この情報はインターフェイスの型情報の取得に使用できます。Retrieves the type information for an object, which can be used to get the type information for an interface.

(継承元 Attribute)
_Attribute.GetTypeInfoCount(UInt32)

オブジェクトが提供する型情報インターフェイスの数 (0 または 1) を取得します。Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(継承元 Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

オブジェクトによって公開されたプロパティおよびメソッドへのアクセスを提供します。Provides access to properties and methods exposed by an object.

(継承元 Attribute)

適用対象