Поделиться через


ServiceHost Конструкторы

Определение

Инициализирует новый экземпляр класса ServiceHost.

Перегрузки

Имя Описание
ServiceHost()

Инициализирует новый экземпляр класса ServiceHost.

ServiceHost(Object, Uri[])

Инициализирует новый экземпляр ServiceHost класса с указанным экземпляром службы и его базовыми адресами.

ServiceHost(Type, Uri[])

Инициализирует новый экземпляр ServiceHost класса с типом службы и его базовыми адресами.

ServiceHost()

Инициализирует новый экземпляр класса ServiceHost.

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

Комментарии

Существует два конструктора, используемых для создания экземпляра ServiceHost класса. ServiceHost(Type, Uri[]) Используйте конструктор, который принимает тип службы в качестве входного параметра, большую часть времени. Узел может использовать это для создания новых служб по мере необходимости. ServiceHost(Object, Uri[]) Используйте конструктор, только если требуется, чтобы узел службы использовал конкретный одноэлементный экземпляр службы.

Применяется к

ServiceHost(Object, Uri[])

Инициализирует новый экземпляр ServiceHost класса с указанным экземпляром службы и его базовыми адресами.

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

Параметры

singletonInstance
Object

Экземпляр размещенной службы.

baseAddresses
Uri[]

Тип ArrayUri , содержащий базовые адреса для размещенной службы.

Исключения

singletonInstance равно null.

Примеры

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

Комментарии

Используйте этот конструктор в качестве альтернативы реализации пользовательского System.ServiceModel.Dispatcher.IInstanceContextInitializer , если требуется предоставить конкретный экземпляр объекта для использования одной службой. Эту перегрузку может потребоваться использовать, если тип реализации службы сложно создать (например, если он не реализует общедоступный конструктор по умолчанию без параметров).

Обратите внимание, что при предоставлении объекта этой перегрузке некоторые функции, связанные с поведением windows Communication Foundation (WCF), работают по-другому. Например, вызов InstanceContext.ReleaseServiceInstance не влияет, если хорошо известный экземпляр объекта предоставляется с помощью этой перегрузки конструктора. Аналогичным образом игнорируется любой другой механизм выпуска экземпляра. ServiceHost всегда действует так, как если бы свойство OperationBehaviorAttribute.ReleaseInstanceMode было установлено на ReleaseInstanceMode.None во всех операциях.

Применяется к

ServiceHost(Type, Uri[])

Инициализирует новый экземпляр ServiceHost класса с типом службы и его базовыми адресами.

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

Параметры

serviceType
Type

Тип размещенной службы.

baseAddresses
Uri[]

Массив типа Uri , содержащий базовые адреса для размещенной службы.

Исключения

serviceType равно null.

Примеры

В этом примере показано, как использовать ServiceHost класс для размещения службы Windows Communication Foundation:

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

Комментарии

Используйте этот конструктор, если у вас есть тип службы, и при необходимости можно создавать новые экземпляры, даже если требуется одиночный экземпляр. ServiceHost(Object, Uri[]) Используйте конструктор, только если требуется, чтобы узел службы использовал конкретный одноэлементный экземпляр службы.

Применяется к