如何在asp.net Mvc项目中使用类库中的Autofac?

问题描述 投票:0回答:1

我在一个类库项目中注册了我的类,如下所示。

public static ContainerBuilder Init()
{
    var builder = new ContainerBuilder();
    var assemblies = ConfigurationManager.AppSettings["IocAssembly"].Split(',');
    for (int i = 0; i < assemblies.Length; i++)
    {
        var assemblyName = assemblies[i];
        foreach (var type in Assembly.Load(assemblyName).GetTypes())
        {
            type.GetInterfaces().Where(x => x.Namespace == string.Concat(assemblyName, ".Contract")).ToList().ForEach
                (s => builder.RegisterType(type).As(s).InstancePerLifetimeScope());
        }
    }

    return builder;
}

然后添加引用到我的asp.net项目中的dll,并尝试构建容器,如你所见。

protected void Application_Start()
{
    AreaRegistration.RegisterAllAreas();
    RouteConfig.RegisterRoutes(RouteTable.Routes);
    var container=AutofacInitializer.Init();
    container.Build();
}

但什么都没有发生,我得到了错误

没有定义无参数构造函数

我的控制器...我错在哪里?

c# asp.net-mvc autofac
1个回答
0
投票

你没有设置 DependencyResolver.

DependencyResolver.SetResolver(new AutofacDependencyResolver(container));

文件在这里。

© www.soinside.com 2019 - 2024. All rights reserved.