autofac文檔:掃描(程序集)


AutoFac文檔

目錄

  1. 開始
  2. Registering components
  3. 控制范圍和生命周期
  4. 用模塊結構化Autofac
  5. xml配置
  6. 與.net集成
  7. 深入理解Autofac
  8. 指導
  9. 關於
  10. 詞匯表

掃描

autofac可以使用約定在程序集中注冊或者尋找組件。

發現組件

autofac2可以根據用戶指定的規則在程序集中注冊一系列的類型,這種方法叫做convention-driven registration或者掃描。

 var dataAccess = Assembly.GetExecutingAssembly();

builder.RegisterAssemblyTypes(dataAccess)
    .Where(t => t.Name.EndsWith("Repository"))
    .AsImplementedInterfaces();

每個RegisterAssemblyTypes方法只能應用一套規則。如果有多套不同的集合要注冊,那就有必要多次調用RegisterAssemblyTypes。

選擇類型

RegisterAssemblyTypes接受程序集的集合。默認情況下,程序集中所有公共具體的類都會被注冊。

如果想要過濾注冊的類型,可以使用Where.向下面這樣:

 Where(t => t.Name.EndsWith("Repository"))

如果想要排除某些類型,使用Except():

 Except<MyUnwantedType>()

或者,自定義那些已經排除的類型的注冊:

  Except<MyCustomisedType>(ct =>ct.As<ISpecial>().SingleInstance())

多個過濾器可以同時使用,這時他們之間是AND的關系

指定服務

RegisterAssemblyTypes這個注冊方法是注冊單個方法的超集,所以類似As的方法也可以用在程序集中,例如

 As<IRepository>()

As和Named這兩個方法額外的重載方法接受lambda表達式來決定服務會提供什么樣的類型。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM