我们有以下项目:的web.config和app.config中的applicationSettings被覆盖在ASP.NET
- Domain.UI.Web
- Domain.Business
- Domain.Services.EndPoints
- Domain.Services.Contracts
- Domain.Services.Agents
了Applica tionSettings被添加到app.Config
在例如Domain.Business
项目:
<applicationSettings>
<Domain.Business.My.MySettings>
<setting name="SomeKey" serializeAs="String">
<value>someDummyValue</value>
</Domain.Business.My.MySettings>
</applicationSettings>
的键添加那里由Visual Studio生成的类型化的访问。但是,该值将被另一个项目中的web.config
的值覆盖。这是Domain.Services.EndPoints
项目的web.config
。
<Domain.Business.My.MySettings>
<setting name="SomeKey" serializeAs="String">
<value>actual_value</value>
</setting>
</Domain.Business.My.MySettings>
</applicationSettings>
当我My.Settings.SomeKey
从Domain.Business
项目的价值是从端点项目actual_value
。这似乎是自动发生的,因为我无法在我们的解决方案中找到任何代码,似乎正在这样做,我无法让Google回答我的问题:
这是什么?这是ASP.NET或WCF中的标准吗?在什么版本的框架中引入了这个?我在哪里可以阅读关于这种覆盖行为的更多信息?
我想Domain.Bussiness是一个类库?在这种情况下,这是正常的行为。 DLL没有.config文件,因此它使用引用库的应用程序的web.config(或可执行文件的app.config)。 – Hanno
就是这样。显然,所有的值都被来自“Domain.Services.EndPoints”的值覆盖。但是没有任何项目引用了只有'svc'文件的EndPoints。我想你列出的一般原则仍然适用,但这是WCF特有的东西? – Laoujin