0

開発チームの一部のメンバーは、同様の問題のデバッグに時間を費やしました。

単体テストの 1 つで使用される RegisterAs クラスには、パブリック メンバーがあります。設定; }

このクラスが Funq によって解決されると、コンストラクターで設定されていても、メンバーは null に設定されます。

私たちのチームメンバーは、メンバーが Container.RegisterAs<> として登録されている型ではない場合に、Funq によってこのメンバーが null に設定されるのは奇妙であることに同意します。

現在、ServiceStack バージョン 4.0.33 を使用しています。

Funq に登録されているインターフェイスを実装していない場合、ServiceStack.Funq がパブリック メンバーに触れないように構成できると便利です。

4

1 に答える 1

1

ServiceStack の IOC の AutoWiring は、コンパイル済みの式を使用して、すべてのパブリック インスタンス プロパティを設定します。静的ファクトリが作成された時点では、まだ存在するすべての登録済み依存関係が認識されていないため、作成されたファクトリは、各公開書き込み可能プロパティを自動配線します。

別の動作が必要な場合は、独自のファクトリを使用できます。たとえば、次のようになります。

container.Register<IDependency>(c => new Dependency(c.Resolve<IFoo>()) {
        Bar = c.Resolve<IBar>()
    })
于 2015-02-27T15:57:18.430 に答える