This tutorial使我想要做的事情看起来很容易。我想要做的就是从我的web.config
中读取自定义属性。这是相关部分:
<configSections>
<section name="Authentication.WSFedShell" type="System.Configuration.DictionarySectionHandler, System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</configSections>
<Authentication.WSFedShell>
<add key="Authentication.PrincipalType" value="ClientCertificate" />
</Authentication.WSFedShell>
在即时窗口中,我可以执行:
System.Configuration.ConfigurationManager.GetSection("Authentication.WSFedShell")
返回字符串
["Authentication.PrincipalType"]: "ClientCertificate"
但是,当我尝试使用as NameValueCollection
)进行投射时,正如this tutorial所说的那样,我会返回null
并且我的代码会爆炸。必须有一种更清洁的方式来获得价值&#34; ClientCertificate&#34;而不是手动解析字符串结果。
我如何阅读&#34; ClientCertificate&#34;来自app.config
?
答案 0 :(得分:1)
为什么你不能使用AppSetting
之类的
<configuration>
<appSettings>
<add key="Authentication.PrincipalType" value="ClientCertificate"/>
</appSettings>
</configuration>
System.Configuration.ConfigurationManager.AppSettings["Authentication.PrincipalType"]
您的部分的问题很可能是Type
属性。但无论如何,您需要将GetSection()
的结果强制转换为为
System.Configuration.DictionarySectionHandler config = (System.Configuration.DictionarySectionHandler)System.Configuration.ConfigurationManager.GetSection("Authentication.WSFedShell");