記事ごとに、IISでIOCコンテナー(Unity、Windsorなど)を使用することについての議論には、カスタムServiceHostFactoryとカスタムServiceHostの作成が含まれます。
そのために私が見ることができる唯一の理由は、IInstanceProvider関連のペイロードを持つカスタムサービスの動作をすべてのサービスに適用できるようにするためです。だから私は、匿名のサービス構成を持っていることによって全体の事柄が単純化されない理由を理解しようとしています。このような構成により、カスタムServiceHostFactoryおよびカスタムサービスホストを使用せずに、カスタム動作をすべてのサービスに適用できます。
とはいえ、カスタムサービスホストが必要になると私が想像できる唯一の理由は、カスタムIInstanceProviderが各WCFインスタンスまたはコンテキストインスタンスでリサイクルされるかどうかです。確かに、IOCコンテナーのバインディングは、IIS ServiceHostを起動するたびに、繰り返しまたは不定期に確立するのではなく、1回だけ確立する必要があります。
カスタムIInstanceProviderが実際に散発的にリサイクルされている場合は、IOCコンテナーをカスタムサービスホストに配置して、可能な限り長く存続するようにすることができます。
しかし、繰り返しになりますが、カスタムIInstanceProviderが組み込みのサービスホストと同じくらい長く続く場合は、カスタムサービスホストファクトリとカスタムサービスホストをスキップしないのはなぜですか?
実際、これをもう少し進めて、IOCコンテナをカスタムIInstanceProviderの静的メンバーに入れる場合、IInstanceProviderが不規則にリサイクルされていても問題ありません。それは完全な円になります:なぜカスタムServiceHostFactoryとカスタムServiceHostがWCFでIOCコンテナを使用する必要があるのですか?