从操作方法向自定义业务/帮助程序类传递上下文的最佳方法是什么?我正在创建的帮助程序/业务类需要信息,例如当前登录的用户,UrlHelper类的实例(生成URL)以及与ASP.NET MVC基础结构相关的任何其他数据。
我在考虑传递一个控制器的实例。这是可取的吗?什么是最佳做法?
答案 0 :(得分:5)
我正在创建的帮助程序/业务类需要诸如当前登录用户之类的信息。
不太可能。恕我直言用户名=> User.Identity.Name,可以作为字符串参数传递给此业务层。
UrlHelper类的实例(用于生成网址)
不太可能。生成URL不是业务层的责任。直接从具有Url属性的控制器传递URL,允许您自由生成URL(再次作为字符串参数)。
结论:将业务逻辑与基础架构分离。基本上,如果你称某种商业逻辑, URL helper 的唯一概念几乎没有意义。一旦跨越了Web层的边界,就没有更多的url助手了。
答案 1 :(得分:1)
减少业务助手层中已存在的耦合传递值类型或参数/ dto类。
不要传递任何与Web / UI层相关的内容。