2010-04-07 82 views
1

我正在寻找一种方法来避免在App.config文件中的configSections中声明我的配置部分。基本上,我想指定我的配置信息,就像我为内置的.NET系统一样。例如,在配置WCF时,我只是把东西放在<system.serviceModel>中,我不必在configSections的顶部声明一个部分。同样的事情适用于<system.diagnostics>和许多其他名称空间。在.NET app.config文件中避免configSections

我知道我可以加载它作为一个XML文件并解析它,但我更愿意坚持使用模式,如果可能的话。此外,使用Reflector查看WCF配置,我注意到它使用了相同的配置子系统(在System.Configuration中定义)。

如果您想知道为什么这很重要,那是因为它让我们的IT人员感到困惑。如果它是在一个地方自我包含,它会更容易。我也意识到我将失去具有多个相同部分类型的能力,但这对我们的情况并不重要。

+2

如果你的IT人都被这个困惑,你需要一两件事情:1)清除(ER)的文件,告诉他们该怎么做。或2)新的IT人员。 – 2010-04-07 17:30:05

+0

或者一个安装程序,没有IT人员介入所有这一切...... – 2010-04-07 18:04:59

回答

3

我不明白 - 你需要声明一些东西,然后才能使用它 - 即使标准的.NET配置节都是在某个地方声明的 - 只是不在你自己的app.config中。

你不能“胜过”.NET配置系统;如果你想以标准的.NET方式来使用配置(我强烈建议 - 这是一种已知的技术,它已经很好的旅行和良好的测试),那么你需要定义你的配置部分并将它们注册到.NET配置系统中 - 没有办法。

你只是为了避免加入那些部分,以您的应用程序本身的app.config文件的办法是把它们放进你的machine.config(隐藏在你的系统的肠子深 - 通常在C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG目录) - 看看它的配置部分顶部注册!

但坦率地说:使用你的软件在每台机器上更新这些系统配置文件似乎比在你的app.config中定义一些配置部分更麻烦!

+0

好了,现在我知道MS如何做,而且你说得对,把我的配置部分放在machine.config中不是答案。谢谢! – 2010-04-07 18:26:50

0

正因如此,您可以使用AppSettings元素。