带有文件夹的Autofac注册

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

我使用Autofac。我这里有很多课程,我必须分别添加每个课程。此外,我所有的课程都不在一个文件中。我可以通过提供文件路径直接将类保存在该文件中吗?

        ContainerBuilder builder = new ContainerBuilder();

        builder.RegisterControllers(Assembly.GetExecutingAssembly());


        builder.RegisterType<CommonBusinessLayer.MyCommonMethods.MailController>().SingleInstance();
        ..........
        ..........
        ..........
        builder.RegisterType<Mvc.MyMethods.Concrete.CacheCategory>().SingleInstance();

        IContainer container = builder.Build();
        DependencyResolver.SetResolver(new AutofacDependencyResolver(container));

示例中的“ CommonBusinessLayer.MyCommonMethods.MailController”和“ Mvc.MyMethods.Concrete.CacheCategory”类是否可以提供帮助?

所以我一遍又一遍地写以注册每个类。

builder.RegisterType<CommonBusinessLayer.MyCommonMethods.AController>().SingleInstance();
builder.RegisterType<CommonBusinessLayer.MyCommonMethods.BController>().SingleInstance();
builder.RegisterType<CommonBusinessLayer.MyCommonMethods.CController>().SingleInstance();
builder.RegisterType<CommonBusinessLayer.MyCommonMethods.DController>().SingleInstance();

我们可以通过提供直接文件路径来注册吗?

builder.RegisterType << [[[[CommonBusinessLayer.MyCommonMethods。。cs *] >>()。SingleInstance();我想要这个,因为我的课太多了。它们都在不同的文件中。

CommonBusinessLayer.MyCommonMethods|-> AController,BController,CController,DController,EController,FController等。Mvc.MyMethods.Concrete|-> XController,YController,ZController,....

我写了每个人进行注册。

builder.RegisterType<CommonBusinessLayer.MyCommonMethods.AController>().SingleInstance(); builder.RegisterType<CommonBusinessLayer.MyCommonMethods.AController>().SingleInstance(); builder.RegisterType<CommonBusinessLayer.MyCommonMethods.AController>().SingleInstance(); builder.RegisterType<CommonBusinessLayer.MyCommonMethods.AController>().SingleInstance(); builder.RegisterType<CommonBusinessLayer.MyCommonMethods.AController>().SingleInstance(); builder.RegisterType<Mvc.MyMethods.Concrete.XController>().SingleInstance(); builder.RegisterType<Mvc.MyMethods.Concrete.YController>().SingleInstance(); builder.RegisterType<Mvc.MyMethods.Concrete.ZController>().SingleInstance();

我们可以代替注册该文件的控制器吗?

示例:

builder.RegisterType<CommonBusinessLayer.MyCommonMethods.*.cs>().SingleInstance(); builder.RegisterType<Mvc.MyMethods.Concrete.*.cs>().SingleInstance();

[Ben denedim,böyle;

    ContainerBuilder builder = new ContainerBuilder();

    builder.RegisterControllers(Assembly.GetExecutingAssembly());

    var dataAccess = Assembly.GetExecutingAssembly();

    builder.RegisterAssemblyTypes(dataAccess)
           .Where(t => t.Name.StartsWith("Repository"))
           .SingleInstance();

    //builder.RegisterType<RepositoryUser>().SingleInstance();
    //builder.RegisterType<RepositoryCategory>().SingleInstance();
    //builder.RegisterType<RepositoryProvince>().SingleInstance();
    //..........
    //builder.RegisterType<RepositoryDistrict>().SingleInstance();

    IContainer container = builder.Build();
    DependencyResolver.SetResolver(new AutofacDependencyResolver(container));

和结果;

无法使用类型为'Mvc.Controllers.KonumController'的'Autofac.Core.Activators.Reflection.DefaultConstructorFinder'找到的构造函数,都可以使用可用的服务和参数来调用:无法解析构造函数“ Void .ctor(CommonBusinessLayer.Repository.RepositoryDistrict,CommonBusinessLayer.Repository.RepositoryUser)”的参数“ CommonBusinessLayer.Repository.RepositoryDistrict repoDistrict”。

我使用Autofac。我这里有很多课程,我必须分别添加每个课程。此外,我所有的课程都不在一个文件中。我可以通过给该文件直接将类保存到该文件中吗...

asp.net-mvc-5 autofac
1个回答
1
投票
© www.soinside.com 2019 - 2024. All rights reserved.