我有一个基本的asp.net MVC项目,它有一个Web项目,一个Service dll项目和一个Data dll项目。我开始在Web项目的应用程序设置中存储配置值,但我遇到了一些我在服务层中需要它们的实例。我能想到共享值的唯一方法是通过参数将它们传递给服务层。有没有其他方法可以让所有项目都可以访问一个配置值?
答案 0 :(得分:5)
我倾向于将配置绑定到最外层(在app.config或web.config中定义)并让该层显式传递域或基础架构逻辑所需的任何值,这应该是你的较低级别的图层包含。
我发现外层中包含的配置值被低级层“神奇地”使用的概念非常直观且不透明。
答案 1 :(得分:3)
我知道这已经得到了解答..但是......你永远不应该对服务或数据层中的* .config文件有任何依赖。这个广告有一些很紧密的联系。最好的方法是通过参数传递它们......比如通过构造函数。
即使在你的网站上,你仍然不应该,IMO。如果你真的需要它,我会使用依赖注入并将它们注入控制器。为什么?好吧 - >单元测试。单元测试不应该要求任何* .config文件。因此,如果您的控制器传入数据,那么您的代码现在没有依赖关系 - >太棒了。
在web.config和Here's an example of a controller that has no dependencies上here is how the app setting entries are passed into the controller VIA dependency injection。
检查出来:))