Поделиться через


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
Атрибуты

Примеры

В следующем примере кода показано, как использовать класс в коде 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)

Применяется к