Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在分层mvc项目中,应用程序安装在哪里?_C#_Asp.net_Asp.net Mvc - Fatal编程技术网

C# 在分层mvc项目中,应用程序安装在哪里?

C# 在分层mvc项目中,应用程序安装在哪里?,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,我有一个基本的asp.NETMVC项目,它有一个Web项目、一个服务dll项目和一个数据dll项目。我开始在web项目的应用程序设置中存储配置值,但在服务层中我遇到了一些需要它们的实例。我能想到的共享值的唯一方法是通过参数将它们传递给服务层。有没有其他方法可以让所有项目都可以访问一个配置值?我倾向于将配置绑定到最外层(在app.config或web.config中定义),并让该层显式传递域或基础结构逻辑所需的任何值,这应该是您的较低级别层包含的内容 我发现将配置值包含在外层的概念(下层“神奇地”

我有一个基本的asp.NETMVC项目,它有一个Web项目、一个服务dll项目和一个数据dll项目。我开始在web项目的应用程序设置中存储配置值,但在服务层中我遇到了一些需要它们的实例。我能想到的共享值的唯一方法是通过参数将它们传递给服务层。有没有其他方法可以让所有项目都可以访问一个配置值?

我倾向于将配置绑定到最外层(在app.config或web.config中定义),并让该层显式传递域或基础结构逻辑所需的任何值,这应该是您的较低级别层包含的内容


我发现将配置值包含在外层的概念(下层“神奇地”使用)非常不直观和不透明。

我知道这已经得到了回答。。但是您不应该对服务层或数据层中的*.config文件有任何依赖关系。这是一个非常紧密的耦合。最好的方法是通过参数传递它们。。比如通过构造函数

即使在你的网站上,你仍然不应该,依我看。如果你真的需要的话,我会使用依赖注入并将它们注入控制器。为什么?井->单元测试。单元测试不需要任何*.config文件。同样地,如果您的控制器是在数据中传递的,那么您的代码现在就没有依赖项了->这太棒了

在web.config和上


查看:)

就我个人而言,我更愿意将这些类型的依赖项作为参数传递(注入它们)。这使得程序集可以在许多项目中重复使用,这些项目可能有也可能没有用于提取所需数据的配置文件。而且更容易进行单元测试。您是否尝试过从程序集访问web.config?据我所知,它应该已经可以被引用的程序集访问。@P.Brian.Mackey服务层不引用web项目。啊,当然。在这种情况下,我强烈建议你把它们作为params传递进来。谢谢,我想我最终会这样做的!