サービス ホストの生成に使用されるファクトリを、ホストされるサービスと、.svc ファイルで提供されるホスティング コードのアクセスとコンパイルに必要なその他のプログラミング部分に関連付けます。Associates the factory used to produce the service host with the service to be hosted and other programming aspects required to access or compile the hosting code provided in the .svc file.


<% @ServiceHost   
Service = "Service, ServiceNamespace"   
Factory = "Factory, FactoryNamespace"  
Debug = "Debug"  
Language = "Language"   
CodeBehind = "CodeBehind"%>  



ホストされるサービスの CLR 型名。The CLR type name of the service hosted. これは、1 つ以上のサービス コンタクトを実装する型の修飾名にする必要があります。This should be a qualified name of a type that implements one or more of the service contacts.


サービス ホストのインスタンス化に使用されるサービス ホスト ファクトリの CLR 型名。The CLR type name of the service host factory used to instantiate the service host. この属性は省略できます。This attribute is optional. 未指定の場合は、ServiceHostFactory のインスタンスを返す既定の ServiceHost が使用されます。If unspecified, the default ServiceHostFactory is used, which returns an instance of ServiceHost.


デバッグ シンボルを使用した Windows Communication Foundation (WCF) サービスをコンパイルする必要があるかどうかを示します。Indicates whether the Windows Communication Foundation (WCF) service should be compiled with debug symbols. true 場合は、WCF サービスは、デバッグ シンボルでコンパイルする必要があります。それ以外の場合、falseします。true if the WCF service should be compiled with debug symbols; otherwise, false.


ファイル (.svc) 内のすべてのインライン コードをコンパイルするときに使用する言語を指定します。Specifies the language used when compiling all the inline code within file (.svc). 値は、C#、VB、JS (それぞれ、C#、Visual Basic .NET、および JScript .NET を示す) など、.NET がサポートする任意の言語を表します。The values can represent any .NET-supported language, including C#, VB, and JS, which refer to C#, Visual Basic .NET, and JScript .NET, respectively. この属性は省略できます。This attribute is optional.


XML Web サービスを実装するクラスが同じファイル内に存在せず、アセンブリとしてコンパイルされずに \Bin ディレクトリに置かれているとき、XML Web サービスを実装するソース ファイルを指定します。Specifies the source file that implements the XML Web service, when the class that implements the XML Web service does not reside in the same file and has not been compiled into an assembly and placed in the \Bin directory.


ServiceHostサービスをホストするために使用、Windows Communication Foundation (WCF) のプログラミング モデル内の拡張ポイントです。The ServiceHost used to host the service is a point of extensibility within the Windows Communication Foundation (WCF) programming model. ファクトリ パターンは、ホスティング環境が直接インスタンス化できないポリモーフィック型の可能性があるため、ServiceHost のインスタンス化に使用されます。A factory pattern is used to instantiate the ServiceHost because it is, potentially, a polymorphic type that the hosting environment should not instantiate directly.

既定の実装では ServiceHostFactory を使用して、ServiceHost のインスタンスを作成します。The default implementation uses ServiceHostFactory to create an instance of ServiceHost. ファクトリの実装の CLR 型名を指定することで、独自のファクトリ (派生ホストを返す) を行うことができますが、 @ServiceHostディレクティブ。But you can provide your own factory (one that returns your derived host) by specifying the CLR type name of your factory implementation in the @ServiceHost directive.

既定のファクトリではなく独自のカスタム サービス ホスト ファクトリに使用してでの型名を指定した、 @ServiceHost ディレクティブを次のとおりです。To use you own custom service host factory instead of the default factory, just provide the type name in the @ServiceHost directive as follows:

<% @ServiceHost Factory="DerivedFactory" Service="MyService" %>  

ファクトリ実装はできるだけ軽量に保持してください。Keep the factory implementations as light as possible. 多くのカスタム ロジックがある場合は、それらのロジックをファクトリ内部ではなくホスト内部に置くとコードがさらに再利用可能になります。If you have lots of custom logic, your code is more reusable if you put that logic inside your host instead of inside the factory.

たとえば、AJAX 対応のエンドポイントを有効にするMyService、指定、WebScriptServiceHostFactoryの値をFactory属性に、既定ではなく、ServiceHostFactoryで、 @ServiceHost としてディレクティブ次の例に示します。For example, to enable an AJAX-enabled endpoint for MyService, specify the WebScriptServiceHostFactory for the value of the Factory attribute, instead of the default ServiceHostFactory, in the @ServiceHost directive as shown in the following example.


<% @ServiceHost   

関連項目See also