1

我有web.config一些自定义设置(不在 appsettings 中),如下所示:

<ldapSettings>
    <add key="server" value="xxxxxx"/>
    <add key="portNumber" value="28400"/>
    <add key="protocolVersion" value="3"/>
    <add key="secure" value="true"/>
</ldapSettings>

如何将服务器地址用于我的代码?

我试过以下

dim pfad As String
pfad = System.Configuration.ConfigurationManager.GetSection("ldapSettings")
Dim blas As String
blas =pfad["server"]

但它不起作用。我错过了什么?

4

5 回答 5

1

首先,您需要为自定义配置部分定义一个类,以便告诉 ASP.NET 它具有哪些属性,如下所示:

Public Class ldapSettings
    Inherits ConfigurationSection
    Private Shared LSettings As ldapSettings = TryCast(ConfigurationManager.GetSection("ldapSettings"), ldapSettings)

    Public Shared ReadOnly Property Settings() As ldapSettings
        Get
            Return LSettings
        End Get
    End Property

    <ConfigurationProperty("server")>
    Public Property Server() As String
        Get
            Return Me("server")
        End Get
        Set(value As String)
            Me("server") = value
        End Set
    End Property

    <ConfigurationProperty("portNumber")>
    Public Property PortNumber() As String
        Get
            Return Me("portNumber")
        End Get
        Set(value As String)
            Me("portNumber") = value
        End Set
    End Property

    <ConfigurationProperty("protocolVersion")>
    Public Property ProtocolVersion() As String
        Get
            Return Me("protocolVersion")
        End Get
        Set(value As String)
            Me("protocolVersion") = value
        End Set
    End Property

    <ConfigurationProperty("secure")>
    Public Property Secure() As Boolean
        Get
            Return Me("secure")
        End Get
        Set(value As Boolean)
            Me("secure") = value
        End Set
    End Property
End Class

然后,您将需要web.config稍微更改您的文件。自定义部分的 XML 布局应如下所示:

  <configSections>
    <section name="ldapSettings" type="Your_Assembly_Name.ldapSettings"/>
  </configSections>
  <ldapSettings
    server="xxxxxx"
    portNumber="28400"
    protocolVersion="3"
    secure="true"
  />

最后,您可以使用以下行获取设置:

Dim Secure As Boolean = ldapSettings.Settings.Secure

对不起VB.NET,如果需要,可以使用此工具进行转换:http: //www.developerfusion.com/tools/convert/csharp-to-vb/

信息主要来自这里: http ://haacked.com/archive/2007/03/11/custom-configuration-sections-in-3-easy-steps.aspx

于 2012-11-19T11:33:56.247 回答
1

您需要转换返回值,GetSection("ldapSettings")因为它不返回字符串:

Dim ldap As ldapSettings = CType(ConfigurationManager.GetSection("ldapSettings"), ldapSettings)
Dim server As String = ldapSettings.server
于 2012-11-19T11:13:28.533 回答
1

我发现了一个更简单的解决方案

这是我所做的:

 Private config As NameValueCollection
 config = DirectCast(ConfigurationManager.GetSection("ldapSettings"), NameValueCollection)
        Dim server As String
        server = config.[Get]("server")
于 2012-11-19T12:55:34.177 回答
0
ConfigurationManager.AppSettings("keyname") 

通常对我有用

于 2012-11-19T11:00:34.423 回答
0

您可以从以下链接获得帮助

http://msdn.microsoft.com/en-us/library/610xe886%28v=vs.80%29.aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1

于 2012-11-19T11:10:22.417 回答