2016-09-22 4 views
0

私は欠けていると思われるものに焦点を当てるためにここでコードをスリム化しようとしました。プログラムでContextFactoryを新規にしようとしています> public static void Main

これは、コンソールアプリケーションの「public static void Main(string [] args)」メソッドです。

静的なので、私はcreditServiceを新しくしてリポジトリを注入する必要があります。

financeRepository "IContextFactory < IFinanceContext> contextFactory"を作成する方法がわかりません - 説明のために、以下のコードで予想される入力署名を残しました。

私は数日間このサークルで回ってきました。

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

必要なところ、それはコンストラクタを介して内注射しています:

他の場所で、溶液中の
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はこのようにそれをブートストラップ。 リポジトリを挿入する方法があるときにリポジトリを新しくしようとしているのですか?私は静的な方法でそれをすることができないと推測しました。 助けてください!

+0

4行目 - 私は私は私はあなたの問題を理解してないと思う期待される入力パラメータ –

+0

を証明するためにそれを残しました。 Ninjectを使用している場合は、リポジトリをインスタンス化( "新規作成")する必要はなく、Ninjectによって自動的に注入される必要があります。これを参照してください:https://github.com/ninject/Ninject/wiki/How-Inject-Works – Shocked

+0

私はそれを注入しようとするとエラーが発生します "非静的フィールド、参照またはプロパティcontextFactory " contextFactoryは/ use/new-upを作成しようとしている工場の名前です –

答えて

1

Ninject.Extensions.Factoryを使用したことがありますか?それはあなたのニーズに合っているようです。 これは非常に強力なツールですが、基本はとてもシンプルですが、素晴らしいドキュメントを閲覧することができます。ここで

を始めるためにいくつかのリソース:

https://github.com/ninject/Ninject.Extensions.Factory/wiki/Factory-interface

http://www.planetgeek.ch/2011/12/31/ninject-extensions-factory-introduction/

+0

情報ありがとう、ありがとう –

関連する問題