У меня проблема с Simple Injector в моем проекте Web Api. I пользователь по умолчанию AccountController
, генерируемый VS.Простой инжектор и проблема с учетной записью AccountContoller по умолчанию
public AccountController(ApplicationUserManager userManager,
ISecureDataFormat<AuthenticationTicket> accessTokenFormat)
В моем файле конфигурации зарегистрироваться:
var container = new Container();
// This is an extension method from the integration package.
container.RegisterWebApiFilterProvider(config);
container.RegisterWebApiControllers(config);
container.Register<IInitializeService, InitializeService>();
container.Register<IFolderRepository, FolderRepository>();
container.Register<IUserRepository, UserRepository>();
container.Register<ILogger, Logger>();
//Authentication Wrap
container.Register<IUserStore<User, Guid>, ApplicationUserStore>();
container.Register<IDataSerializer<AuthenticationTicket>, TicketSerializer>();
container.Register<ISecureDataFormat<AuthenticationTicket>,
SecureDataFormat<AuthenticationTicket>>();
container.Register<IDataProtector>(
() => new DpapiDataProtectionProvider().Create("ASP.NET Identity"));
container.Verify();
// 4. Register the container as MVC3 IDependencyResolver.
DependencyResolver.SetResolver(new SimpleInjectorWebApiDependencyResolver(container));
config.DependencyResolver = new SimpleInjectorWebApiDependencyResolver(container);
я хоть что просто Injector будет достаточно умен, чтобы обрабатывать все строить в зависимости ответственных за идентичность по умолчанию, и я не будет нужно зарегистрировать их вручную, но Я получаю исключения, если я не зарегистрирую их.
Все еще получаю исключение:
Конструктор типа SecureDataFormat содержит параметр типа ITextEncoder с именем «кодировщика», который не зарегистрирован. Убедитесь, что ITextEncoder зарегистрирован в контейнере или изменил конструктор SecureDataFormat.
Есть ли способ отрегулировать это автоматически?
Связанный: https://stackoverflow.com/questions/26643407/simple-injector-injecting-isecuredataformat-into-accountcontroller – Steven