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