Condividi tramite


ServiceHost Costruttori

Definizione

Inizializza una nuova istanza della classe ServiceHost.

Overload

Nome Descrizione
ServiceHost()

Inizializza una nuova istanza della classe ServiceHost.

ServiceHost(Object, Uri[])

Inizializza una nuova istanza della ServiceHost classe con l'istanza del servizio e i relativi indirizzi di base specificati.

ServiceHost(Type, Uri[])

Inizializza una nuova istanza della ServiceHost classe con il tipo di servizio e i relativi indirizzi di base specificati.

ServiceHost()

Inizializza una nuova istanza della classe ServiceHost.

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

Commenti

Esistono due costruttori usati per creare un'istanza della ServiceHost classe . Usare il ServiceHost(Type, Uri[]) costruttore che accetta il tipo di servizio come parametro di input, la maggior parte del tempo. L'host può usarlo per creare nuovi servizi in base alle esigenze. Usare invece il ServiceHost(Object, Uri[]) costruttore solo quando si vuole che l'host del servizio usi un'istanza singleton specifica del servizio.

Si applica a

ServiceHost(Object, Uri[])

Inizializza una nuova istanza della ServiceHost classe con l'istanza del servizio e i relativi indirizzi di base specificati.

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())

Parametri

singletonInstance
Object

Istanza del servizio ospitato.

baseAddresses
Uri[]

Oggetto Array di tipo Uri che contiene gli indirizzi di base per il servizio ospitato.

Eccezioni

singletonInstance è null.

Esempio

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

Commenti

Usare questo costruttore come alternativa all'implementazione di un oggetto personalizzato System.ServiceModel.Dispatcher.IInstanceContextInitializer quando si vuole fornire un'istanza di oggetto specifica per l'uso da parte di un servizio singleton. È possibile usare questo overload quando il tipo di implementazione del servizio è difficile da costruire, ad esempio se non implementa un costruttore pubblico predefinito senza parametri.

Si noti che quando viene fornito un oggetto a questo overload, alcune funzionalità correlate al comportamento di creazione di istanze di Windows Communication Foundation (WCF) funzionano in modo diverso. Ad esempio, la chiamata InstanceContext.ReleaseServiceInstance non ha alcun effetto quando viene fornita un'istanza di oggetto nota usando questo overload del costruttore. Analogamente, qualsiasi altro meccanismo di rilascio dell'istanza viene ignorato. Il ServiceHost si comporta sempre come se la proprietà OperationBehaviorAttribute.ReleaseInstanceMode fosse impostata su ReleaseInstanceMode.None per tutte le operazioni.

Si applica a

ServiceHost(Type, Uri[])

Inizializza una nuova istanza della ServiceHost classe con il tipo di servizio e i relativi indirizzi di base specificati.

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())

Parametri

serviceType
Type

Tipo di servizio ospitato.

baseAddresses
Uri[]

Matrice di tipo Uri che contiene gli indirizzi di base per il servizio ospitato.

Eccezioni

serviceType è null.

Esempio

Questo esempio illustra come usare la ServiceHost classe per ospitare un servizio Windows Communication Foundation:

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

Commenti

Usare questo costruttore quando si dispone del tipo di servizio ed è possibile crearne di nuove quando necessario, anche quando è necessaria un'istanza singleton. Usare invece il ServiceHost(Object, Uri[]) costruttore solo quando si vuole che l'host del servizio usi un'istanza singleton specifica del servizio.

Si applica a