PersonalizableAttribute Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет атрибут персонализации. Этот класс не наследуется.
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
- Наследование
- Атрибуты
Примеры
В следующем примере кода показано, как использовать класс в коде PersonalizableAttribute . Пример состоит из страницы .aspx, которая ссылается на пользовательский элемент управления ColorSelector.ascxвеб-части. Следующий код — это файл .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>
Следующий код предназначен для ColorSelector.ascx элемента управления.
Important
В этом примере есть текстовое поле, которое принимает входные данные пользователя, которое является потенциальной угрозой безопасности. По умолчанию ASP.NET веб-страницы проверяют, что входные данные пользователя не включают скрипт или ЭЛЕМЕНТЫ HTML. Дополнительные сведения см. в разделе "Обзор эксплойтов скриптов".
<%@ 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>
Комментарии
Атрибут Personalizableперсонализации применяется к свойствам общедоступного элемента управления, которые должны сохранять данные персонализации. ASP.NET автоматически создает код для сохранения или извлечения этих значений из базового хранилища данных, когда элемент управления находится в зоне веб-частей на странице веб-частей.
Для того чтобы свойство было помечено как персонализированное, необходимо выполнить следующие требования:
Свойство должно быть общедоступным и должно иметь общедоступные методы доступа и задать их.
Свойство должно быть свойством чтения и записи.
Свойство должно быть без параметров.
Свойство нельзя индексировать.
Код автоматически создается для загрузки и сохранения данных персонализации для свойств. Свойства, поддерживающие персонализацию, определяются на основе существования этого атрибута для свойства и того факта, что свойство соответствует ограничениям, перечисленным выше.
Обратите внимание, что свойства только для чтения и записи не поддерживаются для персонализации. Применение этого атрибута к свойству только для чтения или записи приводит к возникновению HttpException ошибки. Параметризованные свойства также вызывают HttpException исключение.
Отдельные свойства без этого атрибута исключены из персонализации, если не используется специальная обработка через IPersonalizable интерфейс.
Дополнительные сведения об использовании атрибутов см. в обзоре персонализации веб-частей.
Конструкторы
| Имя | Описание |
|---|---|
| PersonalizableAttribute() |
Инициализирует новый экземпляр класса PersonalizableAttribute. |
| PersonalizableAttribute(Boolean) |
Инициализирует новый экземпляр класса с помощью предоставленного PersonalizableAttribute параметра. |
| PersonalizableAttribute(PersonalizationScope, Boolean) |
Инициализирует новый экземпляр PersonalizableAttribute класса с помощью предоставленных параметров. |
| PersonalizableAttribute(PersonalizationScope) |
Инициализирует новый экземпляр класса с помощью предоставленного PersonalizableAttribute параметра. |
Поля
| Имя | Описание |
|---|---|
| Default |
Возвращает экземпляр атрибута, указывающий на отсутствие поддержки персонализации. Это поле может использоваться только для чтения. |
| NotPersonalizable |
Возвращает экземпляр атрибута, указывающий на отсутствие поддержки персонализации. Это поле может использоваться только для чтения. |
| Personalizable |
Возвращает экземпляр атрибута, указывающий на поддержку персонализации. Это поле может использоваться только для чтения. |
| SharedPersonalizable |
Возвращает экземпляр атрибута, указывающий на поддержку персонализации с общей областью. Это поле может использоваться только для чтения. |
| UserPersonalizable |
Возвращает экземпляр атрибута, указывающий на поддержку персонализации в User области. Это поле может использоваться только для чтения. |
Свойства
| Имя | Описание |
|---|---|
| IsPersonalizable |
Возвращает параметр, указывающий, может ли атрибут быть персонализированным, как установлено одним из конструкторов. |
| IsSensitive |
Возвращает параметр, указывающий, учитывается ли атрибут, как установлено одним из конструкторов. |
| Scope |
PersonalizationScope Возвращает значение перечисления для экземпляра класса, заданное одним из конструкторов. |
| TypeId |
При реализации в производном классе получает уникальный идентификатор для этого Attribute. (Унаследовано от Attribute) |
Методы
| Имя | Описание |
|---|---|
| Equals(Object) |
При переопределении возвращает логическое вычисление текущего экземпляра и другого PersonalizableAttribute экземпляра, предоставленного PersonalizableAttribute в качестве параметра. |
| GetHashCode() |
При переопределении возвращает хэш-код атрибута. |
| GetPersonalizableProperties(Type) |
Возвращает коллекцию PropertyInfo объектов для свойств, которые соответствуют типу параметра и помечены как персонализированные. |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| IsDefaultAttribute() |
При переопределении возвращает значение, указывающее, равен ли экземпляр атрибута значению статического Default поля. |
| Match(Object) |
Возвращает значение, указывающее, имеет ли текущий экземпляр PersonalizableAttribute и указанное PersonalizableAttribute значение свойства IsPersonalizable . |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
Явные реализации интерфейса
| Имя | Описание |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации. (Унаследовано от Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Извлекает сведения о типе объекта, который можно использовать для получения сведений о типе для интерфейса. (Унаследовано от Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1). (Унаследовано от Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Предоставляет доступ к свойствам и методам, предоставляемым объектом. (Унаследовано от Attribute) |