我的业务层创建文件,需要将它们保存在asp.net mvc 4 Web前端的App_Data文件夹中。

我可以在业务层中使用Server.MapPath来获取App_Data文件夹的物理路径。但我想避免在业务层中引用System.Web

还有其他方法可以在业务层中获取App_Data的路径吗?

最佳答案

解决此问题的正确方法是使表示层将路径传递到业务层。

换句话说,拥有业务层的目的是在ui和业务流程之间建立关注点分离。如果您强制业务流程了解ui层,那么您就违反了关注点分离。

您可以通过多种方式来处理此问题。在构造业务层时,您可以将路径传递到业务层,例如通过构造函数初始化或通过依赖项注入(inject)。或者,您可以将其传递给方法调用。或者,您可以创建某种形式的配置文件,供业务层加载,其中包含路径。

有很多方法可以解决此问题,而不会违反关注点分离的问题。

关于c# - 在业务层中使用Server.MapPath,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12294458/

10-13 02:00