【发布时间】:2009-09-20 00:07:30
【问题描述】:
对于常规的 ASP.NET MVC 页面,存储库被传递给控件的构造函数。然后测试可以实例化控制器在模拟存储库中传递。
如何使用 Web 服务做到这一点?我看到的问题是我们没有对应的 ControllerBuilder.SetControllerFactory。
让我的 IoC 框架 (Castle) 使用正确的存储库实现来实例化我的 Web 服务的最佳做法是什么?
我认为可能有一种方法可以扩展 HttpHandler 并改变 Web 服务的实际实例化方式。我相信这就是 MVC 框架的做法。
【问题讨论】:
-
您使用哪种技术来实现您的网络服务? ASP.NET Web 服务还是 Windows Communication Foundation?
-
ASP.NET Web 服务。但是,在阅读 jrista 的回答后,我认为如果我真的想注入依赖项,那么研究 WCF 可能是值得的。我正在考虑只使用两个构造函数 - 一个将存储库作为参数(测试将调用这个)和一个默认的硬编码 :this(new IRepository) 并将由 ASP.NET 框架调用。
标签: asp.net web-services dependency-injection inversion-of-control