пользуюсь автофой c. У меня здесь много уроков, и я должен добавить каждый в отдельности. Кроме того, все мои занятия не находятся в одном файле. Могу ли я напрямую сохранить классы в этом файле, указав путь к файлу?
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 <<strong> 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));
и результат;
Ни один из конструкторов не найден с 'Autofa c .Core.Activators.Reflection.DefaultConstructorFinder 'on type' Mvc .Controllers.KonumController 'может быть вызван с доступными службами и параметрами: Невозможно разрешить параметр' CommonBusinessLayer.Repository.RepositoryDistrict repoDistrict 'конструктора' Void .ctor (CommonBusinessLay. Repository.RepositoryDistrict, CommonBusinessLayer.Repository.RepositoryUser) '.