温莎城堡接口注册和抽象实现

时间:2010-10-07 11:27:52

标签: castle-windsor

我正在尝试研究如何自动注册通用抽象类或接口的实现。这是我的课程:

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 个答案:

答案 0 :(得分:6)

你很亲密。 应该是BasedOn(typeof(IValidator<>))通用开放类型。

干杯。