0

すべてのウィンザー インストーラーを独自の IOC アセンブリに分離しました。このように、参照されていないアセンブリから型を登録することは可能です。

container.Register(
    Classes
        .FromAssemblyNamed("MyProject.Web")
        .BasedOn<IController>()
        .LifestylePerWebRequest(),

    Classes
        .FromAssemblyNamed("MyProject.Web")
        .BasedOn<IBaseHttpModule>()
        .LifestylePerWebRequest()
    );

これは現時点では問題なく機能しますが、モジュールが登録されている順序を明示的に述べたいと思います。

次のことを試しましたが、IOC dll で MyProject.Web を参照できないため、循環依存関係が作成されるため、これは機能しないことがわかりました。

        container.Register(
            Component
                .For<IBaseHttpModule>()
                .ImplementedBy(Type.GetType("MyProject.Web.Modules.AuthenticationModule, MyProject.Web"))
                .LifestylePerWebRequest()
                );

この種のものをwindsorで動作させる方法はありますか?オブジェクトブラウザでドキュメントとdllを検索しましたが、それが私の解決策になるように見えるものは何も見つかりませんでした.

4

3 に答える 3

2

このようなことを試しましたか

container.Register(
Classes
    .FromAssemblyNamed("MyProject.Web").Where(t => t.FullName == "MyProject.Web.Modules.AuthenticationModule").
    .BasedOn<IBaseHttpModule>()
    .LifestylePerWebRequest()
于 2013-09-10T19:52:41.257 に答える