Castle Windsor Регистрация интерфейса и абстрактные реализации - PullRequest
5 голосов
/ 07 октября 2010

Я пытаюсь понять, как автоматически регистрировать реализации общего абстрактного класса или интерфейса.Вот мои уроки:

public abstract class AbstractValidator<T> : IValidator<T>
{
   public void Validate(T)
   {
      ...
   }
}

public class CustomerValidator:AbstractValidator<Customer>
{
  ...
}

Я пробую следующее:

_container = new WindsorContainer();
_container.Register(
    AllTypes.FromAssemblyContaining<ValidationPatterns>()
         .BasedOn<IValidator>()
         .WithService.Base()
    }));

IValidator<Customer> val = _container.Resolve<IValidator<Customer>>();

Любые советы с благодарностью.

Ура

1 Ответ

6 голосов
/ 07 октября 2010

Ты рядом. Должно быть BasedOn(typeof(IValidator<>)), это общий открытый тип.

Приветствие.

...