如何使用ConfigurationManager解析app.config?
我正在使用某种方法来解析我的 app.config 文件。然后我被告知使用 ConfigurationManager 更好、更简单。但问题是我不知道如何使用 ConfigurationManager 来做到这一点。
我的原始代码如下所示:
XmlNode xmlProvidersNode;
XmlNodeList xmlProvidersList;
XmlNodeList xmlTaskFactoriesList;
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("app.config");
xmlProvidersNode = xmlDoc.DocumentElement.SelectSingleNode("TaskProviders");
xmlProvidersList = xmlProvidersNode.SelectNodes("TaskProvider");
foreach (XmlNode xmlProviderElement in xmlProvidersList)
{
if (xmlProviderElement.Attributes.GetNamedItem("Name").Value.Equals(_taskProvider))
{
xmlTaskFactoriesList = xmlProviderElement.SelectNodes("TaskTypeFactory");
foreach (XmlNode xmlTaskFactoryElement in xmlTaskFactoriesList)
{
if (xmlTaskFactoryElement.Attributes.GetNamedItem("TaskType").Value.Equals(_taskType))
{
taskTypeFactory = xmlTaskFactoryElement.Attributes.GetNamedItem("Class").Value;
}
}
}
}
使用 ConfigurationManager 的等效内容是什么? (因为我所能看到的只是如何获取密钥而不是节点..)
谢谢
I was using a certain method for parsing my app.config file. Then I was told that using ConfigurationManager is better and simpler. But the thing is I don't know how to do it with ConfigurationManager.
My original code looked like this:
XmlNode xmlProvidersNode;
XmlNodeList xmlProvidersList;
XmlNodeList xmlTaskFactoriesList;
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("app.config");
xmlProvidersNode = xmlDoc.DocumentElement.SelectSingleNode("TaskProviders");
xmlProvidersList = xmlProvidersNode.SelectNodes("TaskProvider");
foreach (XmlNode xmlProviderElement in xmlProvidersList)
{
if (xmlProviderElement.Attributes.GetNamedItem("Name").Value.Equals(_taskProvider))
{
xmlTaskFactoriesList = xmlProviderElement.SelectNodes("TaskTypeFactory");
foreach (XmlNode xmlTaskFactoryElement in xmlTaskFactoriesList)
{
if (xmlTaskFactoryElement.Attributes.GetNamedItem("TaskType").Value.Equals(_taskType))
{
taskTypeFactory = xmlTaskFactoryElement.Attributes.GetNamedItem("Class").Value;
}
}
}
}
What would be the equivalent using ConfigurationManager? (Because all I can see is how to get keys not nodes..)
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
创建一个继承
ConfigurationSection
的类,例如,MyConfigSection
。然后,您可以使用ConfigurationManager.GetSection
方法来获取MyConfigSection
类的实例。ConfigurationManager
将完成所有解析,因此您将拥有一个可以使用的强类型对象。 这是一个很好的示例。Create a class that inherits
ConfigurationSection
called, say,MyConfigSection
. Then you can use theConfigurationManager.GetSection
method to get an instance of yourMyConfigSection
class. TheConfigurationManager
will do all the parsing, so you will have a strongly typed object to work with. Here is an excellent example to follow.如果您担心自定义部分,请使用配置部分类创建您自己的类。 这里是一个有关使用它的示例。
If you are concerned about the custom sections create your own class using Configuration section class. Here is an example about using it.