2016-09-19 5 views
0

リクエストごとにサービスを有効にしようとしていますが、注入されたサービスは常に親/ルートコンテナにスコープされているようです。以前の要求からの状態。リクエスト/ネストされたコンテナごとのコンフィグレーションasp.netコアを使用するStructureMap

私は私のスタートアップクラスでの独自のStructureMapコンテナ

// Wireup the container 
Container = new Container(); 
Container.Configure(config => 
{ 
    // register the dotnet framework registered services into our container 
    config.Populate(services); 

    // Import all the registries 
    config.Scan(scanner => 
    { 
     scanner.TheCallingAssembly(); 
     scanner.LookForRegistries(); 
    }); 
}); 

return Container.GetInstance<IServiceProvider>(); 

はとしてレジスタにサービスを登録し、セットアップをしました。

For<ITest>().Use<Test>().ContainerScoped(); 

その後wiredup次のミドルウェア

var container = serviceProvider.GetRequiredService(typeof(IContainer)) as IContainer; 
if (container != null) 
{ 
    using (var requestContainer = container.GetNestedContainer()) 
    { 
     context.RequestServices = requestContainer.GetInstance<IServiceProvider>(); 
     await _next.Invoke(context); 
    } 
} 
else 
{ 
    await _next.Invoke(context); 
} 

私が行方不明です何にとして任意のポインタ? ありがとう

答えて

1

あなた自身RequestServicesのプロパティを配線する必要はありません。 ASP.NETホストはすでにあなたのためにそれをしています。既存のRequestServicesプロバイダから必要なものだけを解決してください。

関連する問題