问题
除了下面提到的两点之外,您还有其他支持 Ninject 的点吗?
=============
细节
我们不需要将实例传递给任何需要 Employee 实例的构造函数。
我们可能会遇到两个类具有相同功能的情况,因此对这些类使用通用接口。
示例代码
class Sword : IWeapon
{
public void Hit(string target)
{
Console.WriteLine("Chopped {0} clean in half", target);
}
}
class Shuriken : IWeapon
{
public void Hit(string target)
{
Console.WriteLine("Pierced {0}'s armor", target);
}
}
两者都使用相同的接口。这个链接说我们可能有不同的类,它们有共同的接口。
点击这里查看链接
但是,在我的情况下,没有这样的情况,我有两个使用通用接口的类
使用Ninject Dependency Resolver,并使用下面的代码,我们可以解决这个问题
var kernel = new StandardKernel();
kernel.Bind<Practise.Models.IEmployee>().To<Practise.Models.Employee>();
DependencyResolver.SetResolver(new NinjectDependencyResolver(kernel));
使用此代码,我不需要将 Employee 实例传递给任何构造函数。