質問

Autofacに登録されているタイプの束があり、依存関係のいくつかはかなり深いです。すべての登録済みタイプを解決できることをテストするための組み込みの方法はありますか?数分後の途中ではなく、アプリケーションの起動時にすばやく失敗したい。

これは私が現在行っていることであり、機能しているように見えますが、より良い方法がないのではないかと思います。

    public void VerifyAllRegistrations()
    {
        foreach (IComponentRegistration registration in _container.ComponentRegistrations)
        {
            bool isNewInstance;
            registration.ResolveInstance(_container, new Parameter[0], new Disposer(), out isNewInstance);
        }            
    }

    private class Disposer : IDisposer
    {
        public void Dispose()
        {
            // no-op
        }

        public void AddInstanceForDisposal(IDisposable instance)
        {
            instance.Dispose();
        }
    }
役に立ちましたか?

解決

Autofacはその効果を提供しません-AutofacはResolveInstanceに応答してコンポーネントを作成するため、コンストラクターの副作用などに直面することになります。

統合テストは、これに対処する最良の方法です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top