我不确定这是否可能,但我想要一个类,可以使用Entity Framework进行加载和保存,同时在运行时使用Ninject填充接口与具体实现。
我从以下构造函数开始:
我猜这是因为我正在使用Entity Framework来创建实体,所以Ninject没有被注意到。这里是否有什么明显的遗漏?有没有一种好的方法来解决这个问题?
我从以下构造函数开始:
public FancyObject(ICatProvider kitty)
{
this.kitty = kitty;
}
就 Ninject 而言,这样做是可行的,我们可以得到一个 Cat - 并且它在使用 Entity Framework 将实体保存到 SQLServer 时也能正常工作。然而,当尝试加载实体时,它会失败,因为 Entity Framework 需要一个无参构造函数。
于是我尝试像这样将它放在属性上:
[Inject]
public ICatProvider kitty { get; set; }
public FancyObject()
{
}
这可以从数据库中加载,但Kitty始终为null。
我在绑定中只有:
kernel.Bind<ICatProvider>().To<FancyFileBasedCat>();
我猜这是因为我正在使用Entity Framework来创建实体,所以Ninject没有被注意到。这里是否有什么明显的遗漏?有没有一种好的方法来解决这个问题?