@ServiceHost
Associa a fábrica utilizada para produzir o anfitrião de serviços com o serviço a alojar e outros aspetos de programação necessários para aceder ou compilar o código de alojamento fornecido no ficheiro .svc.
Syntax
<% @ServiceHost
Service = "Service, ServiceNamespace"
Factory = "Factory, FactoryNamespace"
Debug = "Debug"
Language = "Language"
CodeBehind = "CodeBehind"
%>
Atributos
Serviço
O nome do tipo CLR do serviço alojado. Este deve ser um nome qualificado de um tipo que implementa um ou mais contratos de serviço.
Factory
O nome do tipo CLR da fábrica de anfitriões de serviços utilizada para instanciar o anfitrião do serviço. Este atributo é opcional. Se não for especificado, é utilizada a predefinição ServiceHostFactory , que devolve uma instância de ServiceHost.
Depurar
Indica se o serviço Windows Communication Foundation (WCF) deve ser compilado com símbolos de depuração. true
se o serviço WCF deve ser compilado com símbolos de depuração; caso contrário, false
.
Linguagem
Especifica o idioma utilizado ao compilar todo o código inline no ficheiro (.svc). Os valores podem representar qualquer . Linguagem suportada pelo NET, incluindo C#
, VB
e JS
, que se referem a C#, Visual Basic e JScript .NET, respetivamente. Este atributo é opcional.
CodeBehind
Especifica o ficheiro de origem que implementa o serviço Web XML, quando a classe que implementa o serviço Web XML não reside no mesmo ficheiro e não foi compilada numa assemblagem e colocada no diretório \Bin .
Observações
O ServiceHost utilizado para alojar o serviço é um ponto de extensibilidade no modelo de programação do Windows Communication Foundation (WCF). Um padrão de fábrica é utilizado para instanciar o ServiceHost porque é, potencialmente, um tipo polimórfico que o ambiente de alojamento não deve instanciar diretamente.
A implementação predefinida utiliza ServiceHostFactory para criar uma instância do ServiceHost. Mas pode fornecer a sua própria fábrica (que devolve o seu anfitrião derivado) ao especificar o nome do tipo CLR da implementação de fábrica na @ServiceHost
diretiva.
Para utilizar a sua fábrica de anfitrião de serviço personalizado em vez da fábrica predefinida, basta indicar o nome do tipo na diretiva da @ServiceHost
seguinte forma.
<% @ServiceHost Factory="DerivedFactory" Service="MyService" %>
Mantenha as implementações de fábrica o mais leve possível. Se tiver muita lógica personalizada, o código será mais reutilizável se colocar essa lógica dentro do anfitrião em vez de dentro da fábrica.
Por exemplo, para ativar um ponto final ativado para AJAX para MyService
, especifique o WebScriptServiceHostFactory para o valor do Factory
atributo, em vez do predefinido ServiceHostFactory, na @ServiceHost
diretiva, conforme mostrado no exemplo seguinte:
<% @ServiceHost
Service="MyService"
Language="C#"
Debug="true"
Factory="WebScriptServiceHostFactory"
%>