Udostępnij za pośrednictwem


ServiceHost Konstruktory

Definicja

Inicjuje nowe wystąpienie klasy ServiceHost.

Przeciążenia

ServiceHost()

Inicjuje nowe wystąpienie klasy ServiceHost.

ServiceHost(Object, Uri[])

Inicjuje nowe wystąpienie ServiceHost klasy z wystąpieniem usługi i określonymi adresami podstawowymi.

ServiceHost(Type, Uri[])

Inicjuje ServiceHost nowe wystąpienie klasy z określonym typem usługi i określonymi adresami podstawowymi.

ServiceHost()

Inicjuje nowe wystąpienie klasy ServiceHost.

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

Uwagi

Istnieją dwa konstruktory używane do tworzenia wystąpienia ServiceHost klasy. Użyj konstruktora ServiceHost(Type, Uri[]) , który w większości przypadków przyjmuje typ usługi jako parametr wejściowy. Host może go użyć do utworzenia nowych usług zgodnie z potrzebami. Zamiast tego należy użyć konstruktora ServiceHost(Object, Uri[]) tylko wtedy, gdy chcesz, aby host usługi używał określonego pojedynczego wystąpienia usługi.

Dotyczy

ServiceHost(Object, Uri[])

Inicjuje nowe wystąpienie ServiceHost klasy z wystąpieniem usługi i określonymi adresami podstawowymi.

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

Parametry

singletonInstance
Object

Wystąpienie usługi hostowanej.

baseAddresses
Uri[]

Uri Typ Array zawierający adresy podstawowe hostowanej usługi.

Wyjątki

singletonInstance to null.

Przykłady

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

Uwagi

Użyj tego konstruktora jako alternatywy do zaimplementowania niestandardowego System.ServiceModel.Dispatcher.IInstanceContextInitializer , jeśli chcesz podać określone wystąpienie obiektu do użycia przez pojedynczą usługę. Możesz użyć tego przeciążenia, gdy typ implementacji usługi jest trudny do skonstruowania (na przykład jeśli nie implementuje domyślnego konstruktora publicznego, który nie ma parametrów).

Należy pamiętać, że gdy obiekt jest dostarczany do tego przeciążenia, niektóre funkcje związane z zachowaniem instancingu Windows Communication Foundation (WCF) działają inaczej. Na przykład wywołanie InstanceContext.ReleaseServiceInstance nie ma wpływu, gdy jest udostępniane dobrze znane wystąpienie obiektu przy użyciu tego przeciążenia konstruktora. Podobnie każdy inny mechanizm wydawania wystąpień jest ignorowany. Właściwość ServiceHost zawsze zachowuje się tak, jakby OperationBehaviorAttribute.ReleaseInstanceMode właściwość jest ustawiona ReleaseInstanceMode.None na dla wszystkich operacji.

Dotyczy

ServiceHost(Type, Uri[])

Inicjuje ServiceHost nowe wystąpienie klasy z określonym typem usługi i określonymi adresami podstawowymi.

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

Parametry

serviceType
Type

Typ hostowanej usługi.

baseAddresses
Uri[]

Tablica typu Uri zawierająca adresy podstawowe dla hostowanej usługi.

Wyjątki

serviceType to null.

Przykłady

W tym przykładzie pokazano, jak używać ServiceHost klasy do hostowania usługi Windows Communication Foundation:

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

Uwagi

Użyj tego konstruktora, jeśli masz typ usługi i w razie potrzeby możesz utworzyć nowe wystąpienia, nawet jeśli potrzebujesz pojedynczego wystąpienia. Zamiast tego należy użyć konstruktora ServiceHost(Object, Uri[]) tylko wtedy, gdy chcesz, aby host usługi używał określonego pojedynczego wystąpienia usługi.

Dotyczy