Condividi tramite


ServiceHost Costruttori

Definizione

Inizializza una nuova istanza della classe ServiceHost.

Overload

ServiceHost()

Inizializza una nuova istanza della classe ServiceHost.

ServiceHost(Object, Uri[])

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

ServiceHost(Type, Uri[])

Consente di inizializzare una nuova istanza della classe ServiceHost 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ò utilizzare questo costruttore per creare nuovi servizi nel modo desiderato. 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[])

Consente di inizializzare una nuova istanza della classe ServiceHost 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[]

Matrice Array di tipo Uri contenente gli indirizzi di base del 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. Questo overload può risultare utile quando il tipo di implementazione del servizio è difficile da costruire, ad esempio se non implementa alcun costruttore pubblico predefinito privo di 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 delle istanze viene ignorato. L'host 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[])

Consente di inizializzare una nuova istanza della classe ServiceHost 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 contenente gli indirizzi di base del 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

Utilizzare questo costruttore quando si dispone del tipo di servizio e si è in grado di crearne nuove istanze ogni volta che sia necessario, anche nel caso in cui occorra creare 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