5

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>

使用可能なすべてのプロパティ(CustomField1、CustomField2 ....)を含むstring[]配列を取得するにはどうすればよいですか。

編集: 実用的な解決策を見つけましたが、それが最良で最も簡単な解決策であるかどうかはわかりません。

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

1 に答える 1

9

私はそれで行きます:

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

System.Web.Profile名前空間とSystem.Configuration名前空間の両方をインポートする必要があります。

于 2011-04-03T14:47:13.873 に答える