0

複数のMVCプロジェクトを含むプロジェクトに取り組んでいます。StructureMapを使用したいのですが、2つのglobal.asaxファイル(プロジェクトごとに1つ)で再利用できるIOCコンテナーを定義する方法(または可能かどうか)がわかりません。それぞれに2つのIoCコンテナを定義する必要はありません。これは他の方法で行うことができますか?

4

2 に答える 2

2

構成が同じであるという質問から、登録を共通のレジストリに入れることができます。

public class CommonRegistry : Registry
{
    public CommonRegistry()
    {
        // configuration here
    }
}

次に、各アプリケーションで初期化します。

ObjectFactory.Initialize(x =>
{
    x.AddRegistry<CommonRegistry>();
});
于 2012-07-18T19:01:49.717 に答える
1

(またはそれが可能であれば)

いいえ、それは不可能です。DIコンテナは、オブジェクトをメモリに格納します。メモリはAppDomainごとにあります。AppDomainはアプリケーションごとです。アプリケーションはGlobal.asaxごとです。したがって、2つのGlobal.asax=>2つのASP.NETアプリケーション=>2つのAppDomains=>2つの異なる無関係のメモリ領域。もちろん、両方のASP.NETアプリケーションで再利用されるクラスライブラリにDIコンテナー構成を配置することもできます。

于 2012-07-18T17:48:21.997 に答える