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