我们最近开始使用依赖注入,我们选择了ninject 2(目前)作为ioc容器。当我重构我们的解决方案以合并di原则时,我遇到了一些让我有点困扰的事情,我想知道是否有一种简单的方法可以绕过它。
对于我们的数据层,我们有一大堆继承相同泛型类(EntityMapper)的数据访问类。在过去,我们总是在需要时构造这些类的一个新实例,但实际上它们都可以转换为单例。我们重写了objectdatasource以使用ninject实例化其数据访问对象,因此,每当我们创建指向entitymapper类之一的objectdatasource时,ninject将使用其默认的自绑定策略注入必要的依赖项。由于这些类太多了,我们不必为每个entityMapper类创建显式绑定,也不必为每个类都设置特殊属性。不过,我希望能够指示ninject将entitymapper的任何实例生成一个单例类。像这样的:
Bind(t => typeof(IEntityMapper).IsAssignableFrom(t)).InSingletonScope();
有办法吗?