Sdílet prostřednictvím


ServiceHost Konstruktory

Definice

Inicializuje novou instanci ServiceHost třídy .

Přetížení

ServiceHost()

Inicializuje novou instanci ServiceHost třídy .

ServiceHost(Object, Uri[])

Inicializuje novou instanci ServiceHost třídy s instancí služby a její základní adresy zadané.

ServiceHost(Type, Uri[])

Inicializuje novou instanci ServiceHost třídy se zadaným typem služby a jejími základními adresami.

ServiceHost()

Inicializuje novou instanci ServiceHost třídy .

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

Poznámky

K vytvoření instance ServiceHost třídy se používají dva konstruktory. ServiceHost(Type, Uri[]) Použijte konstruktor, který ve většině případů přebírá typ služby jako vstupní parametr. Hostitel ho může použít k vytvoření nových služeb podle potřeby. ServiceHost(Object, Uri[]) Konstruktor použijte pouze v případě, že chcete, aby hostitel služby používal konkrétní instanci služby.

Platí pro

ServiceHost(Object, Uri[])

Inicializuje novou instanci ServiceHost třídy s instancí služby a její základní adresy zadané.

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

Instance hostované služby.

baseAddresses
Uri[]

Typ ArrayUri obsahující základní adresy hostované služby.

Výjimky

singletonInstance je null.

Příklady

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

Poznámky

Tento konstruktor použijte jako alternativu k implementaci vlastního System.ServiceModel.Dispatcher.IInstanceContextInitializer , pokud chcete poskytnout konkrétní instanci objektu pro použití jednoúčelovou službou. Toto přetížení můžete použít, když je obtížné vytvořit typ implementace služby (například pokud neimplementuje výchozí veřejný konstruktor, který nemá žádné parametry).

Všimněte si, že při poskytnutí objektu pro toto přetížení některé funkce související s chováním instance pro Windows Communication Foundation (WCF) fungují odlišně. Například volání InstanceContext.ReleaseServiceInstance nemá žádný účinek, pokud je pomocí tohoto konstruktoru k dispozici dobře známá instance objektu. Podobně se ignorují všechny ostatní mechanismy uvolnění instancí. Vlastnost ServiceHost se vždy chová, jako by byla OperationBehaviorAttribute.ReleaseInstanceMode vlastnost nastavena na pro ReleaseInstanceMode.None všechny operace.

Platí pro

ServiceHost(Type, Uri[])

Inicializuje novou instanci ServiceHost třídy se zadaným typem služby a jejími základními adresami.

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 hostované služby.

baseAddresses
Uri[]

Pole typu Uri , které obsahuje základní adresy pro hostované služby.

Výjimky

serviceType je null.

Příklady

Tato ukázka ukazuje, jak použít ServiceHost třídu k hostování služby Windows Communication Foundation:

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

Poznámky

Tento konstruktor použijte, pokud máte typ služby a v případě potřeby můžete vytvořit jeho nové instance, i když potřebujete jednu instanci. ServiceHost(Object, Uri[]) Konstruktor použijte pouze v případě, že chcete, aby hostitel služby používal konkrétní instanci služby.

Platí pro