在AppHost类中,所有方法覆盖都使用Funq容器.我在我的ASP.NET MVC应用程序中使用Autofac(我与我的MVC应用程序并行运行SS).
>有没有办法比较使用global.asax.cs中的Autofac注册,或者这是一种替代的过度杀伤?
>我在AppHost中注释掉了这一行
//ControllerBuilder.Current.SetControllerFactory(new FunqControllerFactory(container));
因为它弄乱了我的Autofac动力控制器.这足以阻止Autofac和Funq在我的应用程序中出现问题吗?或者Funq在其他地方将自己设置为默认的DependencyResolver?
解决方法
Func和AutoFac可以一起工作.使用ServiceStack,您可以指示func使用AutoFac适配器.此页面告诉您如何使用不同的IoC容器.它甚至提供了AutofacIocAdapter类的代码.
https://github.com/ServiceStack/ServiceStack/wiki/The-IoC-container
public class AutofacIocAdapter : IContainerAdapter { private readonly IContainer _container; public AutofacIocAdapter(IContainer container) { _container = container; } public T Resolve<T>() { return _container.Resolve<T>(); } public T TryResolve<T>() { T result; if (_container.TryResolve<T>(out result)) { return result; } return default(T); } }
然后在AppHost配置(容器容器)方法中,您需要启用此适配器:
//Create Autofac builder var builder = new ContainerBuilder(); //Now register all depedencies to your custom IoC container //... //Register Autofac IoC container adapter,so ServiceStack can use it IContainerAdapter adapter = new AutofacIocAdapter(builder.Build()) container.Adapter = adapter;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。