Я использую Castle Windsor для IoC. Это работает отлично, но внезапно, каждый раз, когда я пытаюсь запустить свое приложение, оно перестает работать во время ResolveAll
вызова:
var resolved = container.ResolveAll<IValidator>();
Выдает это исключение:
System.ArgumentException occurred
Message=The number of generic arguments provided doesn't equal the arity of the generic type definition.
Parameter name: instantiation
Source=mscorlib
ParamName=instantiation
StackTrace:
at System.RuntimeType.MakeGenericType(Type[] instantiation)
at Castle.MicroKernel.Handlers.DefaultGenericHandler.ResolveCore(CreationContext context, Boolean requiresDecommission, Boolean instanceRequired) in c:\TeamCity\buildAgent\work\1ab5e0b25b145b19\src\Castle.Windsor\MicroKernel\Handlers\DefaultGenericHandler.cs:line 51
InnerException:
Действительно странно то, что до сегодняшнего дня он работал отлично. Если я вернусь к версии до того, как она начнет это делать, даже к прошлой неделе, я все равно получу эту ошибку. Я пытался перезагрузиться и т.д. Кто-нибудь видел это раньше?
EDIT :
Вот как я регистрирую IValidator:
private void registerFromAssembly(IWindsorContainer container, Assembly assembly)
{
container.Register(
AllTypes.FromAssembly(assembly)
.BasedOn<IValidator>()
);
}
Вот как я регистрирую службу IPresenterResolver:
container.Register(
Component.For<IPresenterResolver>()
.ImplementedBy<CommandLineArgumentPresenterResolver>()
);
Мне нужно удалить оба из них, чтобы приложение теперь запустилось.