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
элемента управления .
Важно!
В этом примере имеется текстовое поле, принимающее вводимые пользователем данные, что является потенциальной угрозой безопасности. По умолчанию данные, вводимые пользователем на веб-страницах 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 автоматически создает код для сохранения или извлечения этих значений из базового хранилища данных, когда элемент управления находится в зоне веб-частей на странице веб-частей.
Чтобы свойство было отмечено как персонализированное, необходимо выполнить следующие требования:
Свойство должно быть открытым и иметь открытые методы доступа get и set.
Свойство должно быть свойством для чтения и записи.
Свойство должно быть без параметров.
Свойство не может быть индексировано.
Автоматически создается код для загрузки и сохранения данных персонализации для свойств. Свойства, поддерживающие персонализацию, определяются на основе наличия этого атрибута в свойстве и того факта, что свойство соответствует ограничениям, перечисленным выше.
Обратите внимание, что свойства только для чтения и записи не поддерживаются для персонализации. Применение этого атрибута к свойству только для чтения или только для записи приводит к возникновению HttpException . Параметризованные свойства также вызывают HttpException исключение.
Отдельные свойства без этого атрибута исключаются из персонализации, если не используется специальная обработка через IPersonalizable интерфейс.
Дополнительные сведения об использовании атрибутов см. в статье Общие сведения о персонализации веб-частей.
Конструкторы
PersonalizableAttribute() |
Инициализирует новый экземпляр класса PersonalizableAttribute. |
PersonalizableAttribute(Boolean) |
Инициализирует новый экземпляр класса PersonalizableAttribute, используя предоставленный параметр. |
PersonalizableAttribute(PersonalizationScope) |
Инициализирует новый экземпляр класса PersonalizableAttribute, используя предоставленный параметр. |
PersonalizableAttribute(PersonalizationScope, Boolean) |
Инициализирует новый экземпляр класса 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) |