Sdílet prostřednictvím


@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í. truepokud 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#, VBa 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"
%>

Viz také