TL; DR通過使用容器將參數運行時間參數傳遞給構造函數是否被認爲是不良做法?通過IoC容器傳遞參數是一種不好的做法嗎?
作爲示例,我構建了一個WCF解決方案,該解決方案使用ServiceHostFactoryBase
實現動態構建服務主機。這家工廠是我的Composition Root;它訪問Unity,設置它並使用容器來解析ServiceHost
。但是,此ServiceHost需要訪問數據庫中的某些配置,並使用「constructorString」來標識此配置。
由於Unity是創建我的ServiceHost
實例的人,所以我沒有看到通過ParameterOverride
傳遞參數的其他解決方案。 但我不喜歡它。該參數不是一個依賴項,它是一個在運行時找到的參數。 此外,ServiceHost
依賴於還需要「constructorString」的另一個類。所以我會依靠Unity來傳遞這些信息。
我使用Unity 3作爲我的IoC容器。