0

私は以下の可能な解決策を探しています。

現在、プロパティインジェクションを使用して満たす依存関係を持つ基本クラスがあります。

public class BaseClass {
    IService SomeService { get; set; }
}

この基本クラスから継承する複数のクラスがあります。

public class DerivedClass : BaseClass, IDerivedClass {

}

そして、私は以下を使用して注入します。

builder.RegisterType<DerivedClass>().As<IDerivedClass>().OnActivated(e => e.Instance.SomeService = e.Context.Resolve<IService>());

これは、基本クラスを拡張する他の約12のクラスに対して行います。BaseClassを拡張するクラスが、登録ごとにアクティベーションイベントを設定せずに、IService登録を取得する方法はありますか?このように正常に動作していますが、登録をクリーンアップしたいと思います。

4

1 に答える 1

1

コンストラクターインジェクションを使用するだけです。次のようなクラスのパラメーターを使用してコンストラクターを作成します

public DerivedClass(IServiceOne service1, IService2 service2)
{
this._service1 = service1;
this._service2 = service2;

}

autofac が自動的にジョブを実行するようにします。

builder.RegisterType<T>();
于 2012-04-15T17:23:00.253 に答える