2010-05-06 57 views
9

Autofac是否具有與StructureMap的AssertConfigurationIsValid方法等效的功能?或者在創建容器時進行配置驗證?Autofac配置驗證

我相信AssertConfigurationIsValid方法檢查容器可以創建所有配置的服務。很明顯,它不能提取更多細微的配置錯誤 - 例如與範圍有關 - 但很高興知道我們正在儘可能地做到儘可能防止可能在運行時出現的問題。

回答

6

我不認爲Autofac有驗證,如果無法解析服務,則會在運行時引發異常。這可能是有用的,但我總是傾向於寫單元測試,驗證我的容器,或者更確切地說我的容器包含我期望它具有的服務。單元測試不止彌補了容器驗證的缺失。

這些測試通常遵循的

  1. 圖案被測
  2. 對於每個所要求的服務,測試container.IsRegistered
  3. 只要有可能,測試創建與所述模塊的容器container.Resolve
+0

我容易實施你所建議的單元測試,現在我不覺得太Autocac沒有內置驗證。感謝您的優秀回答。 – JulianM 2010-05-08 04:39:07

+0

@Serilla - 很高興聽到這個消息。祝你好運! – 2010-05-08 06:48:30

+0

如何使用工廠來生成這些服務?例如。我有一項服務依賴於其他一些服務和一個字符串。該字符串未在autofac中註冊,我通常使用具有該字符串的工廠作爲參數來解析服務。目前我的單元測試忽略了這個工廠,並且因爲所需的字符串沒有註冊而失敗了。 – SamuelDebruyn 2015-12-03 10:17:24