次のように、MVC にコントローラーがあるとします。
public class HomeController : Controller
{
IProductService _productService;
ICategoryService _categoryService;
IUnitOfWork _uow;
public HomeController(IUnitOfWork uow, IProductService productService, ICategoryService categoryService)
{
_productService = productService;
_categoryService = categoryService;
_uow = uow;
}
// ...
}
依存性注入に StructureMap を使用し、Global..asax.cs には次のようなコードがあります。
...
ObjectFactory.Initialize(x =>
{
x.For<IUnitOfWork>().HttpContextScoped().Use(() => new EFCodeFirstContext());
x.ForRequestedType<ICategoryService>().TheDefaultIsConcreteType<EfCategoryService>();
x.ForRequestedType<IProductService>().TheDefaultIsConcreteType<EfProductService>();
});
...
今私の質問は:
たとえば、EfCategoryService のインスタンスが作成され、_categoryService に割り当てられるのは何時ですか?
1- このコントローラーの任意のメソッドで _categoryService を使用するときはいつですか?
また
2-このコントローラへのリクエストが送信された直後? 例えば、
www.sitename.com/Home
また
www.sitename.com/Home/ニュース