我有一个多层ASP.Net MVC 3应用程序,其中不同的层需要共享一些设置,我想知道如何最好地实现这一点。
目前,我的所有AppSet都在Web.config文件中,但我刚刚在我的解决方案中添加了一个新项目来创建一个控制台应用程序,每晚都会调用它来购买Windows任务计划程序来执行日常维护任务。此控制台应用程序将使用与Web应用程序相同的数据库,存储库层,服务层等,并且两个应用程序应在大多数情况下共享相同的设置。我想避免重复两个文件(app.config和web.config)中的设置。
此外,我希望这些设置可用于服务层,该服务层位于同一解决方案的单独项目中。
我已阅读以下帖子,但我不完全理解这个解决方案,我不确定这是最好的方法。
Sharing Config settings between Web App and Console App
我还阅读了该帖子链接的文章,我发现解决方案并不优雅。
我正在使用VS 2010和EF 4.3.1。
答案 0 :(得分:0)
如果您只是想从控制台应用程序访问web.config文件的AppSettings,那就够了。唯一真正的烦恼是,由于您的控制台应用程序不会在Web上下文中运行,您必须事先知道您的站点在IIS中调用了什么。这是你自己的应用程序不应该是一个挑战。
只需使用System.Web.Configuration.WebConfigurationManager打开并访问指定网站的web.config。
答案 1 :(得分:0)
我们的想法是,您可以将设置放在作为链接的所有项目之间共享的公共.config
中,而不是将其放在所有项目中。该解决方案在this answer
中列出。如果您不了解将配置元素外部化为单独文件的可能性,请检查configSource property on MSDN
。