У меня есть IUserService (и другие сервисы), который я регистрирую оптом в моем ServiceInstaller.cs:
container.Register(
AllTypes.FromAssemblyContaining<UserService>()
.Where(type => type.Name.EndsWith("Service"))
.WithService.DefaultInterface()
.Configure(c => c.LifeStyle.Singleton)
);
У меня тогда есть IAuthenticationService, который я регистрирую как в моем общем файле WindsorInstaller.cs:
container.Register(Component.For(typeof (IAuthenticationService))
.ImplementedBy(typeof(AuthenticationService)));
Теперь все работало нормально, пока я не добавил общедоступное свойство для IAuthenticationService
в свой UserService.
Похоже, существует круговая зависимость или некоторая проблема времени, когда вещи регистрируются, так как я получаю сообщение об ошибке:
Can't create component 'ABCD.Services.UserService' as it has dependencies to be satisfied.
ABCD.Services.UserService is waiting for the following dependencies:
Services:
- ABCD.Services.Interfaces.IAuthenticationService which was registered but is also waiting for dependencies.
ABCD.Services.AuthenticationService is waiting for the following dependencies:
Services:
- ABCD.Services.Interfaces.IUserService which was registered but is also waiting for dependencies.
Как я могу решить эту проблему?