【发布时间】:2015-01-07 08:45:23
【问题描述】:
如果我有一个使用 IPerson 接口的 Human 和 Dog 类的实现,以及使用 IFood 接口的 HumanFood 和 DogFood 类。如何在我的主要功能中从使用 HumanFood 切换到 DogFood 和 Human 切换到 Dog?
目前的编写方式是给我一个“多个匹配的绑定可用”错误。
谢谢!
public class Bindings : NinjectModule
{
public override void Load()
{
this.Bind<IFood>().To<HumanFood>();
this.Bind<IFood>().To<DogFood>();
this.Bind<IPerson>().To<Human>();
this.Bind<IPerson>().To<Dog>();
}
}
static void Main(string[] args)
{
IKernel kernel = new StandardKernel();
kernel.Load(Assembly.GetExecutingAssembly());
IFood food = kernel.Get<IFood>();
IPerson person = kernel.Get<IPerson>();
person.BuyFood();
Console.ReadLine();
}
【问题讨论】:
标签: c# inversion-of-control ninject-2