0

使用 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

4

1 回答 1

1
DependencyResolver.SetResolver(new StructureMapDependencyResolver(container));

您显然有对 StructureMap 容器(您的变量container)的引用,所以只需调用container.GetInstance<IMetaDataService>()etc。

于 2012-12-23T10:42:13.577 回答