Как использовать Autofa c из библиотеки классов в проекте asp. net Mvc? - PullRequest
0 голосов
/ 07 мая 2020

Я зарегистрировал свои классы в проекте библиотеки классов следующим образом:

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

А затем добавил ссылку на эту dll fin в моем проекте asp. net и попытался создать контейнер, как вы можете видеть :

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

Но ничего не произошло, и я получил ошибку

Конструктор без параметров не определен

для моего контроллера ... Где я ошибаюсь ?

1 Ответ

0 голосов
/ 08 мая 2020

Вы не установили DependencyResolver.

DependencyResolver.SetResolver(new AutofacDependencyResolver(container));

Здесь документация.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...