在article之後article在article之後,關於在IIS中使用IOC容器(Unity,Windsor等)的任何討論涉及創建自定義ServiceHostFactory和自定義ServiceHost。簡化在WCF中使用IOC容器
,我可以看到的唯一原因,是讓一個自定義的服務行爲,與IInstanceProvider相關的有效載荷,可以適用於所有服務。所以我想通過anonymous service configuration來理解爲什麼整個事情沒有被簡化。這種配置將允許將自定義行爲應用於所有服務,而無需使用自定義ServiceHostFactory和自定義服務主機。
這麼說,我能想象的定製服務主機將是必要的唯一原因是,如果自定義IInstanceProvider與每個WCF實例或上下文實例回收。當然,我希望每次啓動IIS ServiceHost時,IOC容器綁定只能建立一次,而不是重複或不規則。
如果我的自定義IInstanceProvider確實正在零星迴收,那麼我可以將我的IOC容器放入一個自定義服務主機 - 以確保它將盡可能長時間保持。
但同樣,如果我的自定義IInstanceProvider將持續只要內置服務主機,那麼爲什麼不跳過定製服務主機工廠和定製服務的主機?事實上,如果我將IOC容器放入我的自定義IInstanceProvider的靜態成員中,那麼IInstanceProvider是否被不規則地回收並不重要。它來了整圈:爲什麼我需要或想要一個自定義的ServiceHostFactory和自定義的ServiceHost來使用帶有WCF的IOC容器?