使用DI容器和使用StructureMap创建了一个ASP.Net MVC3应用程序。 一切都在控制器方法中工作。但是我怎样才能使用global.asax方法?
这里我设置依赖项解析器,global.ascx的Application_Start
protected void Application_Start()
{
DependencyResolver.SetResolver(new StructureMapDependencyResolver(container));
LoadApplicationMetaData(?,?,?);
}
private void LoadApplicationMetaData(IMetaDataService metaService, ITenantService tenantService, ICacheStorage store)
{
store.Add("TenantMeta", tenantService.GetAllTenants());
}
public class TenantService : ITenantService
{
private readonly ITenantRepository TenantRepsitory;
public TenantService(ITenantRepository _tenantRepository)
{
TenantRepsitory = _tenantRepository;
}
}
在下面这一行中,我如何松散耦合方法调用。
**LoadApplicationMetaData(?,?,?); what should be passed**
注意:TenantService类需要ITenantRepository
答案 0 :(得分:1)
DependencyResolver.SetResolver(new StructureMapDependencyResolver(container));
你明确地引用了StructureMap容器(你的变量container
),所以只需要调用container.GetInstance<IMetaDataService>()
等。