Share via


ServiceHost Construtores

Definição

Inicializa uma nova instância da classe ServiceHost.

Sobrecargas

ServiceHost()

Inicializa uma nova instância da classe ServiceHost.

ServiceHost(Object, Uri[])

Inicializa uma nova instância da classe ServiceHost com a instância do serviço e seus endereços base especificados.

ServiceHost(Type, Uri[])

Inicializa uma nova instância da classe ServiceHost com o tipo de serviço e seus endereços base especificados.

ServiceHost()

Inicializa uma nova instância da classe ServiceHost.

protected:
 ServiceHost();
protected ServiceHost ();
Protected Sub New ()

Comentários

Há dois construtores usados para criar uma instância da ServiceHost classe. Use o ServiceHost(Type, Uri[]) construtor que usa o tipo de serviço como um parâmetro de entrada, na maioria das vezes. O host pode usar isso para criar novos serviços conforme necessário. Use o ServiceHost(Object, Uri[]) construtor somente quando desejar que o host de serviço use uma instância singleton específica do serviço.

Aplica-se a

ServiceHost(Object, Uri[])

Inicializa uma nova instância da classe ServiceHost com a instância do serviço e seus endereços base especificados.

public:
 ServiceHost(System::Object ^ singletonInstance, ... cli::array <Uri ^> ^ baseAddresses);
public ServiceHost (object singletonInstance, params Uri[] baseAddresses);
new System.ServiceModel.ServiceHost : obj * Uri[] -> System.ServiceModel.ServiceHost
Public Sub New (singletonInstance As Object, ParamArray baseAddresses As Uri())

Parâmetros

singletonInstance
Object

A instância do serviço hospedado.

baseAddresses
Uri[]

Um Array do tipo Uri que contém os endereços base do serviço hospedado.

Exceções

singletonInstance é null.

Exemplos

CalculatorService service = new CalculatorService();
ServiceHost serviceHost = new ServiceHost(service, baseAddress);
Dim service As CalculatorService = New CalculatorService()
Dim serviceHost As ServiceHost = New ServiceHost(service, baseAddress)

Comentários

Use esse construtor como alternativa para implementar um personalizado System.ServiceModel.Dispatcher.IInstanceContextInitializer quando quiser fornecer uma instância de objeto específica para uso por um serviço singleton. Talvez você queira usar essa sobrecarga quando o tipo de implementação de serviço for difícil de construir (por exemplo, se ele não implementar um construtor público padrão que não tenha parâmetros).

Observe que quando um objeto é fornecido para essa sobrecarga, alguns recursos relacionados ao comportamento de instanciação do WCF (Windows Communication Foundation) funcionam de forma diferente. Por exemplo, a chamada InstanceContext.ReleaseServiceInstance não tem efeito quando uma instância de objeto conhecida é fornecida usando essa sobrecarga de construtor. Da mesma forma, qualquer outro mecanismo de liberação de instância é ignorado. O ServiceHost sempre se comporta como se a OperationBehaviorAttribute.ReleaseInstanceMode propriedade estivesse definida ReleaseInstanceMode.None para todas as operações.

Aplica-se a

ServiceHost(Type, Uri[])

Inicializa uma nova instância da classe ServiceHost com o tipo de serviço e seus endereços base especificados.

public:
 ServiceHost(Type ^ serviceType, ... cli::array <Uri ^> ^ baseAddresses);
public ServiceHost (Type serviceType, params Uri[] baseAddresses);
new System.ServiceModel.ServiceHost : Type * Uri[] -> System.ServiceModel.ServiceHost
Public Sub New (serviceType As Type, ParamArray baseAddresses As Uri())

Parâmetros

serviceType
Type

O tipo de serviço hospedado.

baseAddresses
Uri[]

Uma matriz do tipo Uri que contém os endereços base do serviço hospedado.

Exceções

serviceType é null.

Exemplos

Este exemplo ilustra como usar a ServiceHost classe para hospedar um serviço Windows Communication Foundation:

ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService), baseAddress);
Dim svcHost As ServiceHost = New ServiceHost(GetType(CalculatorService), baseAddress)

Comentários

Use esse construtor quando você tiver o tipo de serviço e puder criar novas instâncias dele quando necessário, mesmo quando precisar de uma instância singleton. Use o ServiceHost(Object, Uri[]) construtor somente quando desejar que o host de serviço use uma instância singleton específica do serviço.

Aplica-se a