2

我正在使用SimpleInjector進行依賴注入,並且我剛剛發現可以在單個調用鏈中多次註冊相同的裝飾器,裝飾器將按照請求組態。例如,我可以將我的RepositoryTraceDecorator爲我的倉庫類的第一個和最後裝飾:調用鏈中同一個裝飾器的多次註冊

container.RegisterDecorator(typeof(IRepository<>), 
    typeof(RepositoryTraceDecorator<>)); 
container.RegisterDecorator(typeof(IRepository<>), 
    typeof(RepositoryDetectChangesDecorator<>)); 
container.RegisterDecorator(typeof(IRepository<>), 
    typeof(CrossRepositoryTransactionScopeDecorator<>)); 
container.RegisterDecorator(typeof(IRepository<>), 
    typeof(RepositoryTraceDecorator<>)); 
container.RegisterDecorator(typeof(IRepository<>), 
    typeof(RepositoryExceptionDecorator<>)); 

由設計是本,所以我可以依靠這個功能嗎?

回答

2

這是否由設計決定,因此我可以依賴此功能嗎?

正如您剛纔所示,在鏈中多次應用裝飾器並在以後的版本中更改此行爲將是一個突破性更改可能很有用。我可以確保您可以安全地依賴於此,並且此行爲不會改變。

未來可能發生的事情是,新的Diagnostics feature得到改進,檢測到這一點,並警告你有多個相同的裝飾器。

相關問題