저자는 Autofac 사용하여 콘솔 응용 프로그램에서 MediatR을 사용하는 방법에 대한 example 제공ASP MVC 5에서 Autofac과 함께 MediatR을 어떻게 사용합니까?
:이 예를 데려 그것이 ASP MVC (5)와 Autofac.Mvc5 패키지와 함께 작동하도록을 시도var builder = new ContainerBuilder();
builder.RegisterSource(new ContravariantRegistrationSource());
builder.RegisterAssemblyTypes(typeof (IMediator).Assembly).AsImplementedInterfaces();
builder.RegisterAssemblyTypes(typeof (Ping).Assembly).AsImplementedInterfaces();
builder.RegisterInstance(Console.Out).As<TextWriter>();
var lazy = new Lazy<IServiceLocator>(() => new AutofacServiceLocator(builder.Build()));
var serviceLocatorProvider = new ServiceLocatorProvider(() => lazy.Value);
builder.RegisterInstance(serviceLocatorProvider);
var builder = new ContainerBuilder();
builder.RegisterSource(new ContravariantRegistrationSource());
builder.RegisterAssemblyTypes(typeof(IMediator).Assembly).AsImplementedInterfaces();
builder.RegisterAssemblyTypes(typeof(AddPostCommand).Assembly).AsImplementedInterfaces();
builder.RegisterControllers(typeof(HomeController).Assembly);
var container = builder.Build();
var lazy = new Lazy<IServiceLocator>(() => new AutofacServiceLocator(container));
var serviceLocatorProvider = new ServiceLocatorProvider(() => lazy.Value);
builder.RegisterInstance(serviceLocatorProvider);
DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
웹 응용 프로그램을 실행할 때 ServiceLocationProvider
종속성이 등록되지 않았다는 오류 페이지가 표시됩니다. 내가 도대체 뭘 잘못하고있는 겁니까?
그 문제는 내가이 Build
를 호출 한 후 ServiceLocatorProvider
예를 를 등록하고 때문이다 의심 - 저자의 예에서 Build
방법은 Lazy<>
에 나중에 감사를 호출됩니다. 하지만이 문제를 해결하는 방법을 모르겠습니다.
니스 하나, mickaeld 우는 소리가 변경됩니다. 나에게 분명했다. 그래서 고마워. –