5

これら 2 つの登録の autofac の違いは何ですか:

builder.Register(c => Instance).As<ISomeInterface>();

builder.RegisterInstance(Instance).As<ISomeInterface>().SingleInstance().ExternallyOwned();

Instance は、登録が行われる autofac モジュールの (非静的) プロパティであり、オブジェクト初期化子によって設定されます。

質問する理由は、デバッグ中のコードで前者が実行されており、ISomeInterface のインスタンスが 2 つ浮かんでいるかのように奇妙な動作をしているためです。機能上の必要性は、インスタンスがコンテナーの存続期間 (= アプリケーションの存続期間) にわたって存続することです。

私が最初のことをすべきではないと私に言わないでください-それは行われました.

4

1 に答える 1