2016-09-22 56 views
0

我试着将代码缩小到这里,专注于我认为是缺失的部分。试图在程序中新建一个ContextFactory> public static void Main

这是控制台应用程序的“public static void Main(string [] args)”方法。

由于它是静态的,我必须新建creditService并注入存储库。

我只是无法弄清楚如何创建financeRepository“IContextFactory < IFinanceContext> contextFactory” - 我已经在下面的代码中留下了预期的输入签名来解释。

我一直在这个圈子里绕了几天。

public static void Main(string[] args) 
{ 
    IFinanceContext financeContext = new FinanceContext(); 
    IFinanceRepository financeRepository = financeContext(IContextFactory<IFinanceContext> contextFactory); 

    ICreditService creditService = new CreditService(financeRepository); 
    CreditHandler _creditHandler = new CreditHandler(creditService); 

    _creditHandler.Handle(); 
} 

在亚洲其他的解决方案,在另一个项目,Ninject自举这样的:

kernel.Bind<IContextFactory<IFinanceContext>>().ToFactory(); 
kernel.Bind<IFinanceContext>().To<FinanceContext>(); 

然后在需要的地方它是通过构造注射英寸 那么我有没有办法在注入时尝试新建Repository?我推测我不能用静态方法做到这一点。 请帮忙!

+0

4行 - 我离开它来演示预期的输入参数 –

+0

我不认为我明白你的问题。如果您使用Ninject,则不必实例化(“新建”)存储库,它应该由Ninject自动注入,您只需告诉它在哪里。请参阅:https://github.com/ninject/Ninject/wiki/How-Injection-Works – Shocked

+0

当我尝试注入它时,出现错误“非静态字段需要对象引用,引用或属性contextFactory“ contextFactory是工厂的名称我正在尝试创建/使用/更新 –

回答

相关问题