C # Получить свойства из SettingsPropertyCollection - PullRequest
5 голосов
/ 03 апреля 2011

У меня есть провайдер профиля в моем web.config

    <profile defaultProvider="MyProvider">
      <providers>
.......
      <properties>
        <add name="CustomField1" type="string" />
        <add name="CustomField2" type="string" />
        <add name="CustomField3" type="string" />
        <add name="CustomField4" type="string" />
      </properties>
    </profile>

Как получить массив string [], содержащий все доступные свойства (CustomField1, CustomField2 ....)

Edit: Нашел рабочее решение, но не уверен, что оно самое лучшее и простое.

var allCustomProperties =
                    profile.GetType().GetProperties().Where(l => l.PropertyType.Name == "String" && l.CanWrite == true).Select(
                        l => l.Name).ToArray();

1 Ответ

9 голосов
/ 03 апреля 2011

Я бы пошел с этим:

string[] props = ProfileBase.Properties.Cast<SettingsProperty>()
            .Select( p => p.Name ).ToArray();

Вам необходимо импортировать пространства имен System.Web.Profile и System.Configuration.

...