Как я могу получить зависимости конструктора через имя, когда самому классу не нужно получать конкретную реализацию через имя.
public class PriceValidator : IPriceValidator
{
private readonly IEnumerable<IPriceValidationRule> _priceValidationRules;
public PriceValidator(IEnumerable<IPriceValidationRule> priceValidationRules)
{
_priceValidationRules = priceValidationRules;
}
public bool IsPriceValid(decimal price)
{
return _priceValidationRules.All(priceValidator => priceValidator.IsPriceValid(price));
}
}
Звоните:
_priceValidator = ObjectFactory.GetInstance<IPriceValidator>();
Итак, я хочу конкретную реализацию IPriceValidator, но с конкретными (по имени) правилами валидации.
Edit:
Мои правила:
For<IPriceValidationRule>().Use<MaxPriceValidationRule>().Named("A");
For<IPriceValidationRule>().Use<MinPriceValidationRule>().Named("A");
For<IPriceValidationRule>().Use<MyDoublePriceValidationRule>().Named("B");
For<IPriceValidationRule>().Use<MyPriceValidationRule>().Named("B");
Как я могу использовать одно и то же правило с разными именами? Поэтому, когда я говорю, дайте мне все экземпляры с именем "X", я хочу получить MaxPriceValidationRule?