3

ASP.NET MVC 2 で Ninject 2.0 を使い始めたばかりです。そのため、インターフェイス IMongoRepository とクラス MongoRepository があります。

MongoRepository は、パラメーター文字列のコレクションを受け取ります。

使用するコレクションに応じて、MongoRepository のパラメーターに異なる値を渡します。これが正しい言い回しであることを願っていますが、使用しているコントローラーに応じて異なるパラメーターをどのようにマッピングすればよいでしょうか?

たとえば、Article コントローラーでは、次のように呼び出します。

_articlesRepository = new MongoRepository("Articles");

そして PageController では、次のように呼び出します。

_pagesController = new MongoRepository("Pages");

私がやりたいことは、コンストラクター注入を行い、IMongoRepository を渡すことです。アイデアや提案はありますか?

ところで、私はちょうど IOC/DI について学んでいます。ですから、IOC 忍者からのヒントをお待ちしています。ありがとう!

4

1 に答える 1

11

次のことを試してください。

Bind<IMongoRepository>().To<MongoRepository>().WhenInjectedInto<ArticleController>().WithConstructorArgument("topic", "Article");
Bind<IMongoRepository>().To<MongoRepository>().WhenInjectedInto<PagesController>().WithConstructorArgument("topic", "Pages");

コンストラクターの引数が呼び出されると仮定しtopicます。

于 2010-09-15T15:57:41.447 に答える