0

DIコンテナとStructureMapを使用してASP.NetMVC3アプリケーションを作成しました。すべてがコントローラーメソッドで機能します。しかし、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 コンテナー (変数) への参照が明確にあるため、etccontainerを呼び出すだけです。container.GetInstance<IMetaDataService>()

于 2012-12-23T10:42:13.577 に答える