У меня есть абстрактный класс:
public abstract class Validator<T> : IValidator
и несколько классов, которые реализуют этот класс для определенных целей, например
public sealed class NewsValidator : Validator<News>
Теперь, используя Ninject, я хочу сделать Dependency Injection, как показано ниже (этот конкретный код НЕ работает):
Bind<Validator<News>>().To<NewsValidator>();
Bind(typeof(Validator<>)).To(typeof(NullValidator<>));
Итак, чего я хочу добиться, так это
Validator<News>
Должен быть привязан к классу "NewsValidator", но если запрашивается любая другая не связанная версия этого класса, скажем
Validator<Article>
Validator<SomethingElse>
, который должен быть связан с классом по умолчанию (NullValidator). Использование вышеприведенного кода вызывает исключение, поскольку оно связывает Validator как с NewsValidator, так и с NullValidator.
Как я мог это реализовать? Отдельные типы универсального класса должны быть привязаны к отдельным классам. Все другие типы универсального класса, которые не были явно связаны, должны быть связаны с классом по умолчанию.
Был бы очень рад пару предложений! Спасибо!