【发布时间】:2011-06-02 19:45:56
【问题描述】:
我有一个抽象类:
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 绑定到 NewsValidator 以及 NullValidator。
我该如何实现呢?泛型类的特定类型应绑定到各个类。没有显式绑定的所有其他类型的泛型类都应该绑定到默认类。
如果有几个建议会很高兴!谢谢!
【问题讨论】:
标签: c# asp.net-mvc-3 ninject ninject-2