Прочитать на английском

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


ProfileBase.Item[String] Свойство

Определение

Возвращает или задает значение свойства профиля, индексированное по имени свойства

C#
public override object this[string propertyName] { get; set; }

Параметры

propertyName
String

Имя свойства профиля.

Значение свойства

Значение указанного свойства профиля, типизированное как object.

Исключения

Была сделана попытка задать значение свойства в анонимном профиле, где атрибут allowAnonymous свойства имеет значение false.

Для текущего профиля не заданы свойства.

-или-

Указанного имени свойства профиля не существует в текущем профиле.

-или-

Поставщик указанного свойства профиля не опознал указанное свойство.

Была попытка установить значение свойства, отмеченного как доступное только для чтения.

Была попытка присвоить свойству значение, используя несовместимый тип.

Примеры

В следующем примере кода перечисляется имена свойств в профиле пользователя путем привязки Name свойства из статической Properties коллекции SettingsProperty объектов к элементу GridView управления . Выбранное значение свойства извлекается по имени с помощью Item[] коллекции . Пример файла Web.config, в котором указываются свойства профиля пользователя, см. в примере, предоставленном ProfileBase для класса .

ASP.NET (C#)
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Web.Profile" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

public void Page_Load()
{
  if (!IsPostBack)
  {
    PropertiesListBox.DataSource = ProfileBase.Properties;
    PropertiesListBox.DataBind();
  }

  if (PropertiesListBox.SelectedItem != null)
  {
    object propValue = Profile[PropertiesListBox.SelectedItem.Text];

    Type propType = propValue.GetType();

    // If the property is a value type, return ToString().

    if (propType == typeof(string) || propType.IsValueType)
    {
      ValueLabel.Visible = true;
      ValueGridView.Visible = false;
      ValueLabel.Text = propValue.ToString();
      return;
    }


    // Bind the property to a GridView.

    try
    {
      ValueGridView.DataSource = propValue;
      ValueGridView.DataBind();
      ValueGridView.Visible = true;
      ValueLabel.Visible = false; 
    }
    catch
    {
      // If the property is not bindable, return ToString().

      ValueLabel.Visible = true;
      ValueGridView.Visible = false;
      ValueLabel.Text = propValue.ToString();
    }
  }
}

</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Home Page</title>
</head>
<body>

<h3>View Profile properties:</h3>

<form id="form1" runat="server">
  <table border="0" cellpadding="2" cellspacing="2">
    <tr>
      <td>Property</td>
      <td>Value</td>
    </tr>
    <tr>
      <td valign="top">
        <asp:ListBox runat="server" id="PropertiesListBox" Rows="10" AutoPostBack="True" DataTextField="Name" />
      </td>
      <td valign="top">
        <asp:GridView runat="Server" id="ValueGridView" Visible="False" />
        <asp:Label runat="Server" id="ValueLabel" Visible="False" />
      </td>
    </tr>
  </table>
</form>

</body>
</html>

Комментарии

Это свойство можно использовать для получения или задания значений свойств профиля пользователя для приложения по имени. Возвращаемые значения типируются как object и должны быть приведены к определенному типу объекта при извлечении. Для строго типизированного доступа к значениям свойств профиля можно получить доступ к свойству по имени в качестве члена свойства, доступного Profile на каждой странице, например Profile.CustomerAddress.

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

Продукт Версии
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

См. также раздел