2012-02-21 6 views
3

Iは、処理対象物を作成します。Autofac BeginLifetimeScope

using (var lifetime = EngineContext.Current.BeginLifetimeScope()) 
{ 
    var sourceService = lifetime.Resolve<SourceService>(); 
    // do things... 
} 

SourceServiceクラスもAutoFacに登録され、他のオブジェクトに依存する - コンストラクタインジェクションを介し。

これらのオブジェクトは自動的に、同じ親クラス、つまりsourceServiceと同じライフタイムスコープを継承しますか?

答えて

3

どのように登録されたかによって異なります。

InstancePerLifetimeScope =スコープごとに1つ。

例:

builder.Register<YourClass>() 
    .AsImplementedInterfaces() 
    .InstancePerLifetimeScope(); 

あなたがここで詳細を読むことができます:

http://autofac.readthedocs.io/en/latest/lifetime/instance-scope.html

+2

...とデフォルトを、InstancePerDependency()、あまりにもスコープローカルインスタンスでの結果、。 –