Castle Windsor - Jak odwzorować nazwaną instancję w iniekcji konstruktora

może to jest łatwe, ale przeszukiwanie go w Internecie już mnie boli

oto problem:

interface IValidator
{
    void Validate(object obj);
}

public class ValidatorA : IValidator
{
    public void Validate(object obj) { }
}

public class ValidatorB : IValidator
{
    public void Validate(object obj) { }
}


interface IClassA { }
interface IClassB { }

public class MyBaseClass
{
    protected IValidator validator;

    public void Validate()
    {
        validator.Validate(this);
    }
}

public class ClassA : MyBaseClass, IClassA
{
    //problem: validator should ValidatorA
    public ClassA(IValidator validator) { }
}

public class ClassB : MyBaseClass, IClassB
{
    //problem: validator should ValidatorB
    public ClassB(IValidator validator) { }
}

public class OtherClass
{
    public OtherClass(IClassA a, IClassB b) { }
}


//on Main
var oc = container.Resolve<OtherClass>();

Dowolny pomysł?

EDYTOWAĆ

ZarejestrowałemValidatorA iValidatorB zNamed, teraz problem z tym, jak Castle Windsor może poprawnie wprowadzić ten walidator doClassA iClassB, czy jest na to sposób? czy jest jakieś lepsze rozwiązanie?

jeśli ktoś myśli, że mój projekt klasy jest zły, proszę o radę. Do tej pory myślę, że to poprawne. Tak, walidator ma specyficzną konfigurację dla określonej klasy. ale są powody, dla których jest to abstrakcyjne:

Validator jest obiektem złożonym, czasem powinien łączyć się z bazą danych, więc MUSZĘ przekazać interfejs zamiast implementacji do konstruktora dla powodu testowania jednostki.Nie ma możliwości użycia innego interfejsu dla żadnego Validatora, ponieważ jedyną metodą, której użyłem, jestValidateMyślęMyBaseClass.Validate() powszechnymetoda szablonu wzór nie jest?

questionAnswers(2)

yourAnswerToTheQuestion