我有一个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"]
但它不起作用。我错过了什么?
答案 0 :(得分:1)
您需要转换GetSection("ldapSettings")
的返回值,因为它不返回字符串:
Dim ldap As ldapSettings = CType(ConfigurationManager.GetSection("ldapSettings"), ldapSettings)
Dim server As String = ldapSettings.server
答案 1 :(得分: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
答案 2 :(得分:1)
我发现了一个更简单的解决方案
这就是我所做的:
Private config As NameValueCollection
config = DirectCast(ConfigurationManager.GetSection("ldapSettings"), NameValueCollection)
Dim server As String
server = config.[Get]("server")
答案 3 :(得分:0)
ConfigurationManager.AppSettings("keyname")
通常适合我
答案 4 :(得分:0)