@ServiceHost
Přidruží továrnu použitou k vytvoření hostitele služby se službou, která se má hostovat, a další programovací aspekty potřebné pro přístup nebo kompilaci hostitelského kódu poskytnutého v souboru .svc.
Syntax
<% @ServiceHost
Service = "Service, ServiceNamespace"
Factory = "Factory, FactoryNamespace"
Debug = "Debug"
Language = "Language"
CodeBehind = "CodeBehind"
%>
Atributy
Služba
Název typu CLR hostované služby. Měl by to být kvalifikovaný název typu, který implementuje jednu nebo více kontraktů služeb.
Objekt pro vytváření
Název typu CLR objektu pro hostitele služby, který slouží k vytvoření instance hostitele služby. Tento atribut je volitelný. Pokud není zadán, použije se výchozí ServiceHostFactory hodnota, která vrátí instanci ServiceHost.
Ladění
Určuje, zda má být služba Windows Communication Foundation (WCF) kompilována pomocí symbolů ladění. true
pokud má být služba WCF kompilována pomocí symbolů ladění; v opačném případě . false
Jazyk
Určuje jazyk použitý při kompilaci veškerého vloženého kódu v souboru (.svc). Hodnoty mohou představovat libovolnou hodnotu . Podporovaný jazyk NET, včetně C#
, VB
a JS
, které odkazují na jazyk C#, Visual Basic a JScript .NET. Tento atribut je volitelný.
Codebehind
Určuje zdrojový soubor, který implementuje webovou službu XML, pokud třída, která implementuje webovou službu XML, není umístěna ve stejném souboru a nebyla zkompilována do sestavení a umístěna v adresáři \Bin .
Poznámky
Slouží ServiceHost k hostování služby jako bod rozšiřitelnosti v rámci programovacího modelu WCF (Windows Communication Foundation). K vytvoření instance objektu ServiceHost se používá vzor z výroby, protože se potenciálně jedná o polymorfní typ, který by hostitelské prostředí nemělo vytvořit přímou instanci.
Výchozí implementace používá ServiceHostFactory k vytvoření instance objektu ServiceHost. Můžete ale zadat vlastní továrnu (tu, která vrací odvozeného hostitele) zadáním názvu typu CLR implementace vaší továrny v direktivě @ServiceHost
.
Pokud chcete místo výchozího objektu pro vytváření hostitelů použít vlastní službu, zadejte název typu v direktivě @ServiceHost
následujícím způsobem.
<% @ServiceHost Factory="DerivedFactory" Service="MyService" %>
Udržujte tovární implementace co nejlehcenější. Pokud máte hodně vlastní logiky, je váš kód opakovaně použitelný, pokud tuto logiku umístíte do hostitele místo do továrny.
Pokud chcete například povolit koncový bod s podporou AJAX pro MyService
, zadejte WebScriptServiceHostFactory v direktivě @ServiceHost
hodnotu Factory
atributu místo výchozí ServiceHostFactoryhodnoty, jak je znázorněno v následujícím příkladu:
<% @ServiceHost
Service="MyService"
Language="C#"
Debug="true"
Factory="WebScriptServiceHostFactory"
%>