[英]design pattern for adding a web service in ASP.NET MVC3
首先-我不是问这个问题如何在MVC3中托管Web服务? 我知道按钮在哪里:-)
我正在尝试找到一个最佳实践示例,该示例是如何使用新的DI /公共服务定位器框架以使Web服务调用(以及依赖于Web服务调用的代码)可测试的。 我没有使用NInject或类似工具的经验-那是要走的路吗?
与处理任何外部依赖关系的方式几乎相同-将其包装在接口中,使控制器将接口的实例作为构造函数参数。 在实现方面,您可以通过多种方式处理问题,通常我们使服务包装器将服务视为服务的依赖项,并让结构图担心生命周期。 对NInject并不十分熟悉,所以我不确定那里是否有更好的方法,但是我怀疑它们具有类似的功能。
我不知道最佳做法是什么,但是我认为您可以使用温莎的WCF工具(Ninject也具有WCF扩展名 )来做到这一点。 注册您的服务,然后设置您的依赖项解析器,并让MVC的依赖项解析器进行艰苦的工作,例如构造函数注入:
注册您的服务:
container = new WindsorContainer().AddFacility<WcfFacility>();
container.Register(Component
.For<IService>()
.On(WcfEndpoint.FromConfiguration("...")))
.LifeStyle.Transient);
设置依赖解析器:
DependencyResolver.SetResolver(new WindsorDependencyResolver(container));
然后,MVC3的新依赖项解析器应该能够将服务代理注入到构造函数中,例如:
public HomeController(IService service)
{
// ...
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.