2
    container.Register(
        AllTypes.Pick().FromAssembly(typeof (UserRepository).Assembly)
            .WithService.FirstInterface());

現在、上記のコードは、インターフェイスも同じアセンブリにある場合は正常に機能しますが、IUserRepository が別のアセンブリにある場合は失敗します。

2 つの異なるアセンブリからの自動登録は可能ですか? ここで何か不足していますか?

4

1 に答える 1

5

はい、インターフェイスが別のアセンブリで定義されている自動登録を定義することは可能です。少し異なる構文を使用しますが、それを行います。

container.Register(AllTypes
    .FromAssemblyContaining<ConfigurationService>()
    .Where(t => t.Name.EndsWith("Service", StringComparison.Ordinal))
    .WithService
    .FirstInterface()
    .Configure(reg => reg.LifeStyle.PerWebRequest));

API の使用方法の違いが違いを生むかどうかはわかりませんが、そうではないと思います。むしろ、発生したエラーの原因は、おそらくインターフェイスを含むアセンブリが利用できないことだと思います。

Fusion がそのアプリケーションからタイプをロードできるかどうかを確認します。

于 2010-01-13T19:35:25.550 に答える