私はコントローラーを正しく作成するために構造マップを取得しようとしていますが、DIを使用してINewsServiceをNewsControllerに挿入しています。ASP.NET MVC、MVCContrib、Structuremap、コントローラファクトリーとして機能していますか?
public class NewsController : Controller
{
private readonly INewsService newsService;
public NewsController(INewsService newsService)
{
this.newsService = newsService;
}
public ActionResult List()
{
var newsArticles = newsService.GetNews();
return View(newsArticles);
}
}
と私はアプリに
public class Application : HttpApplication
{
protected void Application_Start()
{
RegisterIoC();
RegisterViewEngine(ViewEngines.Engines);
RegisterRoutes(RouteTable.Routes);
}
public static void RegisterIoC()
{
ObjectFactory.Initialize(config => {
config.UseDefaultStructureMapConfigFile = false;
config.AddRegistry<PersistenceRegistry>();
config.AddRegistry<DomainRegistry>();
config.AddRegistry<ControllerRegistry>();
});
DependencyResolver.InitializeWith(new StructureMapDependencyResolver());
ControllerBuilder.Current.SetControllerFactory(typeof(IoCControllerFactory));
}
}
を開始するには、このコードを使用しています。しかしのStructureMapはINewsServiceを注入したいとは思われないと、私はエラー このオブジェクトのために定義されていませんパラメータなしのコンストラクタを取得。
私は何が欠けていますか?
ありがとうございました!これは私を大いに助け、私は私の問題を回避することができました:) –
@Ervどの名前空間がScanにありますか?私は使用や参照を紛失しているようです。 – ahsteele
私が使用しているバージョン(8ヶ月が経過していますが、最近変更されたものは見ていません)では、スキャンはRepositoryRegistryが継承しているレジストリベースクラスのメソッドです。 –