Freigeben über


ServiceHost Konstruktoren

Definition

Initialisiert eine neue Instanz der ServiceHost-Klasse.

Überlädt

ServiceHost()

Initialisiert eine neue Instanz der ServiceHost-Klasse.

ServiceHost(Object, Uri[])

Initialisiert eine neue Instanz der ServiceHost-Klasse mit der angegebenen Dienstinstanz und ihrer Basisadresse.

ServiceHost(Type, Uri[])

Initialisiert eine neue Instanz der ServiceHost-Klasse mit dem angegebenen Diensttyp und seiner Basisadresse.

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 in den meisten Fällen als Eingabeparameter annimmt. Mit diesem Konstruktor kann der Host bei Bedarf neue Dienste erstellen. Verwenden Sie stattdessen den ServiceHost(Object, Uri[]) Konstruktor 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 angegebenen Dienstinstanz und ihrer Basisadresse.

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 vom Typ Uri, das 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 zum Implementieren eines benutzerdefinierten System.ServiceModel.Dispatcher.IInstanceContextInitializer , wenn Sie eine bestimmte Objektinstanz für die Verwendung durch einen Singleton-Dienst bereitstellen möchten. Diese Überladung empfiehlt sich, wenn der Dienstimplementierungstyp schwer zu erstellen ist (wenn er z. B. keinen öffentlichen Standardkonstruktor implementiert, der über keine Parameter verfügt).

Beachten Sie, dass, wenn ein Objekt für diese Überladung bereitgestellt wird, einige Features im Zusammenhang mit dem Wcf-Instanziierungsverhalten (Windows Communication Foundation) unterschiedlich funktionieren. Beispielsweise haben Aufrufe InstanceContext.ReleaseServiceInstance keine Auswirkung, wenn eine bekannte Objektinstanz mithilfe dieser Konstruktorüberladung bereitgestellt wird. Dementsprechend werden auch alle anderen Instanzfreigabemechanismen ignoriert. Der ServiceHost verhält sich immer so, als ob die OperationBehaviorAttribute.ReleaseInstanceMode -Eigenschaft für alle Vorgänge auf ReleaseInstanceMode.None festgelegt ist.

Gilt für:

ServiceHost(Type, Uri[])

Initialisiert eine neue Instanz der ServiceHost-Klasse mit dem angegebenen Diensttyp und seiner Basisadresse.

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 veranschaulicht, wie Sie die ServiceHost -Klasse zum Hosten eines Windows Communication Foundation-Diensts verwenden:

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 Singletoninstanz benötigen. Verwenden Sie stattdessen den ServiceHost(Object, Uri[]) Konstruktor nur, wenn der Diensthost eine bestimmte Singletoninstanz des Diensts verwenden soll.

Gilt für: