asp.net-mvc – ServiceStack Funq IoC替代品

在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;

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....