Freigeben über


ServiceHost Konstruktoren

Definition

Initialisiert eine neue Instanz der ServiceHost-Klasse.

Überlädt

Name Beschreibung
ServiceHost()

Initialisiert eine neue Instanz der ServiceHost-Klasse.

ServiceHost(Object, Uri[])

Initialisiert eine neue Instanz der ServiceHost Klasse mit der Instanz des Diensts und der angegebenen Basisadressen.

ServiceHost(Type, Uri[])

Initialisiert eine neue Instanz der ServiceHost Klasse mit dem Angegebenen Diensttyp und den angegebenen Basisadressen.

ServiceHost()

Initialisiert eine neue Instanz der ServiceHost-Klasse.

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

Hinweise

Es gibt zwei Konstruktoren, die zum Erstellen einer Instanz der ServiceHost Klasse verwendet werden. Verwenden Sie den ServiceHost(Type, Uri[]) Konstruktor, der den Diensttyp als Eingabeparameter verwendet, meistens. Der Host kann dies verwenden, um nach Bedarf neue Dienste zu erstellen. Verwenden Sie den ServiceHost(Object, Uri[]) Konstruktor stattdessen nur, wenn der Diensthost eine bestimmte Singletoninstanz des Diensts verwenden soll.

Gilt für:

ServiceHost(Object, Uri[])

Initialisiert eine neue Instanz der ServiceHost Klasse mit der Instanz des Diensts und der angegebenen Basisadressen.

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

Parameter

singletonInstance
Object

Die Instanz des gehosteten Diensts.

baseAddresses
Uri[]

Ein Array Typ Uri , der die Basisadressen für den gehosteten Dienst enthält.

Ausnahmen

singletonInstance ist null.

Beispiele

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

Hinweise

Verwenden Sie diesen Konstruktor als Alternative zur Implementierung einer benutzerdefinierten System.ServiceModel.Dispatcher.IInstanceContextInitializer Instanz, wenn Sie eine bestimmte Objektinstanz für die Verwendung durch einen Singleton-Dienst bereitstellen möchten. Sie können diese Überladung verwenden, wenn ihr Dienstimplementierungstyp schwer zu konstruieren ist (z. B. wenn kein öffentlicher Standardkonstruktor implementiert wird, der keine Parameter enthält).

Beachten Sie, dass beim Angeben eines Objekts für diese Überladung einige Features im Zusammenhang mit dem Wcf-Verhalten (Windows Communication Foundation) anders funktionieren. Beispielsweise hat der Aufruf InstanceContext.ReleaseServiceInstance keine Auswirkung, wenn eine bekannte Objektinstanz mithilfe dieser Konstruktorüberladung bereitgestellt wird. Dementsprechend werden auch alle anderen Instanzfreigabemechanismen ignoriert. Das ServiceHost verhält sich immer so, als ob die Eigenschaft OperationBehaviorAttribute.ReleaseInstanceMode auf ReleaseInstanceMode.None für alle Vorgänge gesetzt ist.

Gilt für:

ServiceHost(Type, Uri[])

Initialisiert eine neue Instanz der ServiceHost Klasse mit dem Angegebenen Diensttyp und den angegebenen Basisadressen.

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

Parameter

serviceType
Type

Der Typ des gehosteten Diensts.

baseAddresses
Uri[]

Ein Array vom Typ Uri , das die Basisadressen für den gehosteten Dienst enthält.

Ausnahmen

serviceType ist null.

Beispiele

In diesem Beispiel wird die Verwendung der ServiceHost Klasse zum Hosten eines Windows Communication Foundation-Diensts veranschaulicht:

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

Hinweise

Verwenden Sie diesen Konstruktor, wenn Sie über den Diensttyp verfügen und bei Bedarf neue Instanzen davon erstellen können, auch wenn Sie eine Singleton-Instanz benötigen. Verwenden Sie den ServiceHost(Object, Uri[]) Konstruktor stattdessen nur, wenn der Diensthost eine bestimmte Singletoninstanz des Diensts verwenden soll.

Gilt für: