@ServiceHost
Associa la factory usata per creare l'host del servizio al servizio da ospitare e agli altri aspetti di programmazione necessari per accedere al codice host fornito nel file .svc o per compilarlo.
Sintassi
<% @ServiceHost
Service = "Service, ServiceNamespace"
Factory = "Factory, FactoryNamespace"
Debug = "Debug"
Language = "Language"
CodeBehind = "CodeBehind"
%>
Attributi
Servizio
Nome del tipo CLR del servizio ospitato. Deve trattarsi di un nome completo di un tipo che implementa uno o più contratti di servizio.
Factory
Nome del tipo CLR della factory dell'host del servizio usato per creare un'istanza dell'host del servizio. Questo attributo è facoltativo. Se non viene specificato, viene usata la factory ServiceHostFactory predefinita, che restituisce un'istanza dell'host ServiceHost.
Debug
Indica se il servizio Windows Communication Foundation (WCF) deve essere compilato con simboli di debug. true
se il servizio WCF deve essere compilato con simboli di debug; in caso contrario, false
.
Linguaggio
Specifica il linguaggio usato per la compilazione di tutto il codice inline contenuto nel file con estensione svc. I valori possono rappresentare qualsiasi oggetto . Linguaggio supportato da NET, tra cui C#
, VB
e JS
, che fanno riferimento rispettivamente a C#, Visual Basic e JScript .NET. Questo attributo è facoltativo.
CodeBehind
Specifica il file di origine che implementa il servizio Web XML, quando la classe che implementa il servizio Web XML non risiede nello stesso file e non è stata compilata in un assembly e inserita nella directory \Bin .
Commenti
L'oggetto ServiceHost usato per ospitare il servizio è un punto di estendibilità all'interno del modello di programmazione Windows Communication Foundation (WCF). Poiché un modello di factory può essere un tipo polimorfico di cui l'ambiente host non deve creare un'istanza direttamente, tale modello viene usato per creare un'istanza dell'host ServiceHost.
L'implementazione predefinita usa la factory ServiceHostFactory per creare un'istanza dell'host ServiceHost. È tuttavia possibile specificare la propria factory (una che restituisce l'host derivato) specificando il nome del tipo CLR dell'implementazione @ServiceHost
della factory nella direttiva .
Per usare la propria factory host del servizio personalizzata anziché la factory predefinita, specificare solo il nome del tipo nella @ServiceHost
direttiva come indicato di seguito.
<% @ServiceHost Factory="DerivedFactory" Service="MyService" %>
È consigliabile garantire che le implementazioni presentino la massima semplicità possibile. Se si usa un'elevata quantità di logica personalizzata, quest'ultima è più riutilizzabile se inserita nell'host anziché nella factory.
Ad esempio, per abilitare un endpoint abilitato per AJAX per MyService
, specificare per WebScriptServiceHostFactory il valore dell'attributo , anziché l'impostazione Factory
predefinita ServiceHostFactory, nella @ServiceHost
direttiva come illustrato nell'esempio seguente:
<% @ServiceHost
Service="MyService"
Language="C#"
Debug="true"
Factory="WebScriptServiceHostFactory"
%>