3

问题

除了下面提到的两点之外,您还有其他支持 Ninject 的点吗?

=============

细节

  1. 我们不需要将实例传递给任何需要 Employee 实例的构造函数。

  2. 我们可能会遇到两个类具有相同功能的情况,因此对这些类使用通用接口。

示例代码

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 实例传递给任何构造函数。

4

0 回答 0