@Servicehost

Kojarzy fabrykę używaną do tworzenia hosta usługi z usługą do hostowania i innych aspektów programowania wymaganych do uzyskania dostępu do lub skompilowania kodu hostingu podanego w pliku svc.

Składnia

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

Atrybuty

Usługa

Nazwa typu CLR hostowanej usługi. Powinna to być kwalifikowana nazwa typu, który implementuje co najmniej jeden kontrakt usługi.

Fabryka

Nazwa typu CLR fabryki hostów usługi używana do utworzenia wystąpienia hosta usługi. Ten atrybut jest opcjonalny. Jeśli nie zostanie określona, zostanie użyta wartość domyślna ServiceHostFactory , która zwraca wystąpienie klasy ServiceHost.

Debugowanie

Wskazuje, czy należy skompilować usługę Windows Communication Foundation (WCF) z symbolami debugowania. true jeśli usługa WCF powinna zostać skompilowana z symbolami debugowania; w przeciwnym razie , false.

Język

Określa język używany podczas kompilowania całego kodu wbudowanego w pliku (.svc). Wartości mogą reprezentować dowolny element . Obsługiwany przez platformę NET język, w tym C#, VBi JS, odwołujący się odpowiednio do języków C#, Visual Basic i JScript .NET. Ten atrybut jest opcjonalny.

KodBehind

Określa plik źródłowy, który implementuje usługę sieci Web XML, gdy klasa implementujący usługę sieci Web XML nie znajduje się w tym samym pliku i nie została skompilowana do zestawu i umieszczona w katalogu \Bin .

Uwagi

Używany ServiceHost do hostowania usługi jest punktem rozszerzalności w modelu programowania Windows Communication Foundation (WCF). Wzorzec fabryki jest używany do tworzenia wystąpienia ServiceHost , ponieważ jest to potencjalnie typ polimorficzny, którego wystąpienie środowiska hostingu nie powinno być tworzone bezpośrednio.

Domyślna implementacja używa metody ServiceHostFactory do utworzenia wystąpienia klasy ServiceHost. Możesz jednak podać własną fabrykę (taką, która zwraca hosta pochodnego), określając nazwę typu CLR implementacji fabryki w @ServiceHost dyrektywie.

Aby użyć własnej fabryki hostów usług niestandardowych zamiast domyślnej fabryki, wystarczy podać nazwę typu w dyrektywie w @ServiceHost następujący sposób.

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

Zachowaj możliwie lekkie implementacje fabryki. Jeśli masz wiele logiki niestandardowej, kod jest bardziej wielokrotnego użytku, jeśli umieścisz logikę wewnątrz hosta zamiast wewnątrz fabryki.

Aby na przykład włączyć punkt końcowy z obsługą AJAX dla MyServiceelementu , określ WebScriptServiceHostFactory wartość Factory atrybutu zamiast domyślnej ServiceHostFactory, w dyrektywie, jak pokazano w @ServiceHost poniższym przykładzie:

<% @ServiceHost
Service="MyService"
Language="C#"
Debug="true"
Factory="WebScriptServiceHostFactory"
%>

Zobacz też