サービスのホストに使用される ServiceHost は、Windows Communication Foundation (WCF) プログラミング モデル内の拡張ポイントです。ファクトリ パターンは、ホスティング環境が直接インスタンス化できないポリモーフィック型の可能性があるため、ServiceHost のインスタンス化に使用されます。
既定の実装では ServiceHostFactory を使用して、ServiceHost のインスタンスを作成します。ただし、ファクトリ実装の CLR 型名を @ServiceHost ディレクティブに指定して、独自のファクトリ (派生ホストを返すファクトリ) を提供できます。
既定のファクトリの代わりに独自のカスタム サービス ホスト ファクトリを使用するには、型名を @ServiceHost ディレクティブに次のように指定します。
<% @ServiceHost Factory=”DerivedFactory” Service=”MyService” %>
ファクトリ実装はできるだけ軽量に保持してください。多くのカスタム ロジックがある場合は、それらのロジックをファクトリ内部ではなくホスト内部に置くとコードがさらに再利用可能になります。
たとえば、MyService の AJAX 対応のエンドポイントを有効にするには、次の例に示す @ServiceHost ディレクティブで、Factory 属性の値に、既定の ServiceHostFactory の代わりに WebScriptServiceHostFactory を指定します。