PersonalizableAttribute Kelas

Definisi

Mewakili atribut personalisasi. Kelas ini tidak dapat diwariskan.

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
Warisan
PersonalizableAttribute
Atribut

Contoh

Contoh kode berikut menunjukkan cara menggunakan PersonalizableAttribute kelas dalam kode. Sampel terdiri dari halaman .aspx yang mereferensikan kontrol pengguna Bagian Web yang disebut ColorSelector.ascx. Kode berikut adalah file .aspx untuk contoh.

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

Kode berikut adalah untuk ColorSelector.ascx kontrol.

Penting

Contoh ini memiliki kotak teks yang menerima input pengguna, yang merupakan potensi ancaman keamanan. Secara default, ASP.NET halaman Web memvalidasi bahwa input pengguna tidak menyertakan elemen skrip atau HTML. Untuk informasi selengkapnya, lihat Gambaran Umum Eksploitasi Skrip.

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

Keterangan

Atribut personalisasi, Personalizable, diterapkan ke properti kontrol publik yang perlu mempertahankan informasi personalisasi. ASP.NET secara otomatis menghasilkan kode untuk mempertahankan atau mengambil nilai-nilai ini dari penyimpanan data yang mendasar saat kontrol berada di zona Komponen Web pada halaman Bagian Web.

Persyaratan berikut harus dipenuhi agar properti ditandai sebagai dapat dipersonalisasi:

  • Properti harus publik dan harus memiliki aksesor get dan set publik.

  • Properti harus berupa properti baca/tulis.

  • Properti harus tanpa parameter.

  • Properti tidak dapat diindeks.

Kode secara otomatis dibuat untuk memuat dan menyimpan data personalisasi untuk properti. Properti yang mendukung personalisasi ditentukan berdasarkan keberadaan atribut ini pada properti dan fakta bahwa properti sesuai dengan batasan yang tercantum di atas.

Perhatikan bahwa properti baca-saja dan tulis-saja tidak didukung untuk personalisasi. Menerapkan atribut ini ke properti baca-saja atau tulis-saja menghasilkan yang HttpException dilemparkan. Properti berparameter juga melemparkan HttpException pengecualian.

Properti individual tanpa atribut ini dikecualikan dari personalisasi jika tidak ada penanganan khusus melalui antarmuka yang IPersonalizable digunakan.

Untuk informasi selengkapnya tentang menggunakan atribut, lihat Gambaran Umum Personalisasi Bagian Web.

Konstruktor

PersonalizableAttribute()

Menginisialisasi instans baru kelas PersonalizableAttribute.

PersonalizableAttribute(Boolean)

Menginisialisasi instans PersonalizableAttribute baru kelas menggunakan parameter yang disediakan.

PersonalizableAttribute(PersonalizationScope)

Menginisialisasi instans PersonalizableAttribute baru kelas menggunakan parameter yang disediakan.

PersonalizableAttribute(PersonalizationScope, Boolean)

Menginisialisasi instans PersonalizableAttribute baru kelas menggunakan parameter yang disediakan.

Bidang

Default

Mengembalikan instans atribut yang menunjukkan tidak ada dukungan untuk personalisasi. Bidang ini hanya-baca.

NotPersonalizable

Mengembalikan instans atribut yang menunjukkan tidak ada dukungan untuk personalisasi. Bidang ini hanya-baca.

Personalizable

Mengembalikan instans atribut yang menunjukkan dukungan untuk personalisasi. Bidang ini hanya-baca.

SharedPersonalizable

Mengembalikan instans atribut yang menunjukkan dukungan untuk personalisasi dengan cakupan bersama. Bidang ini hanya-baca.

UserPersonalizable

Mengembalikan instans atribut yang menunjukkan dukungan untuk personalisasi dalam User cakupan. Bidang ini hanya-baca.

Properti

IsPersonalizable

Mendapatkan pengaturan yang menunjukkan apakah atribut dapat dipersonalisasi, seperti yang ditetapkan oleh salah satu konstruktor.

IsSensitive

Mendapatkan pengaturan yang menunjukkan apakah atribut sensitif, seperti yang ditetapkan oleh salah satu konstruktor.

Scope

Mendapatkan nilai enumerasi untuk instans PersonalizationScope kelas, seperti yang ditetapkan oleh salah satu konstruktor.

TypeId

Ketika diimplementasikan di kelas turunan, mendapatkan pengidentifikasi unik untuk ini Attribute.

(Diperoleh dari Attribute)

Metode

Equals(Object)

Saat ditimpa, mengembalikan evaluasi Boolean dari PersonalizableAttribute instans saat ini dan instans lain PersonalizableAttribute yang disediakan sebagai parameter.

GetHashCode()

Saat ditimpa, mengembalikan kode hash atribut.

GetPersonalizableProperties(Type)

Mengembalikan kumpulan PropertyInfo objek untuk properti yang cocok dengan jenis parameter dan ditandai sebagai dapat dipersonalisasi.

GetType()

Mendapatkan instans Type saat ini.

(Diperoleh dari Object)
IsDefaultAttribute()

Saat ditimpa, mengembalikan nilai yang menunjukkan apakah instans atribut sama dengan nilai bidang statis Default .

Match(Object)

Mengembalikan nilai yang menunjukkan apakah instans PersonalizableAttribute saat ini dan yang ditentukan PersonalizableAttribute memiliki nilai properti yang sama IsPersonalizable .

MemberwiseClone()

Membuat salinan dangkal dari yang saat ini Object.

(Diperoleh dari Object)
ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)

Implementasi Antarmuka Eksplisit

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

Memetakan sekumpulan nama ke sekumpulan pengidentifikasi pengiriman yang sesuai.

(Diperoleh dari Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Mengambil informasi jenis untuk objek, yang dapat digunakan untuk mendapatkan informasi jenis untuk antarmuka.

(Diperoleh dari Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Mengambil jumlah antarmuka informasi jenis yang disediakan objek (baik 0 atau 1).

(Diperoleh dari Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Menyediakan akses ke properti dan metode yang diekspos oleh objek.

(Diperoleh dari Attribute)

Berlaku untuk