C#从SettingsPropertyCollection获取属性

Dmy*_*nko 5 .net c# asp.net web-config icollection

我的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>
Run Code Online (Sandbox Code Playgroud)

如何获取包含所有可用属性的string []数组(CustomField1,CustomField2 ....)

编辑: 找到工作解决方案,但不确定它是否是最好和最简单的.

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

小智 9

我会这样做的:

string[] props = ProfileBase.Properties.Cast<SettingsProperty>()
            .Select( p => p.Name ).ToArray();
Run Code Online (Sandbox Code Playgroud)

您必须导入System.Web.Profile和System.Configuration命名空间.