InstanceContext.GetServiceInstance Metod

Definition

Returnerar instansen av tjänsten.

Överlagringar

Name Description
GetServiceInstance()

Returnerar instansen av tjänsten för instanskontexten.

GetServiceInstance(Message)

Returnerar instansen av tjänsten för instanskontexten som svar på ett inkommande meddelande.

GetServiceInstance()

Returnerar instansen av tjänsten för instanskontexten.

public:
 System::Object ^ GetServiceInstance();
public object GetServiceInstance();
member this.GetServiceInstance : unit -> obj
Public Function GetServiceInstance () As Object

Returer

Objektet som representerar tjänstinstansen.

Undantag

Tjänstinstansen är i ett tillstånd som skapats eller öppnats eller initieras inte.

Tjänstinstansen avbryts.

Tjänstinstansen har redan stängts och kan inte ändras i dessa tillstånd.

Tjänstinstansen är felaktig och kan inte ändras i dessa tillstånd.

Exempel

Uri baseAddress = new Uri("http://localhost:8000/ServiceModelSamples/service");

// Create a ServiceHost for the CalculatorService type and provide the base address.
using (ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService), baseAddress))
{
    serviceHost.Open();
    OperationContext operationContext = OperationContext.Current;
    InstanceContext instanceContext = operationContext.InstanceContext;
    CalculatorService service = (CalculatorService) instanceContext.GetServiceInstance();
}

Gäller för

GetServiceInstance(Message)

Källa:
InstanceContext.cs
Källa:
InstanceContext.cs
Källa:
InstanceContext.cs

Returnerar instansen av tjänsten för instanskontexten som svar på ett inkommande meddelande.

public:
 System::Object ^ GetServiceInstance(System::ServiceModel::Channels::Message ^ message);
public object GetServiceInstance(System.ServiceModel.Channels.Message message);
member this.GetServiceInstance : System.ServiceModel.Channels.Message -> obj
Public Function GetServiceInstance (message As Message) As Object

Parametrar

message
Message

Det inkommande meddelandet som utlöste skapandet av ett tjänstobjekt.

Returer

Objektet som representerar tjänstinstansen.

Undantag

Tjänstinstansen är i ett tillstånd som skapats eller öppnats eller initieras inte.

Tjänstinstansen avbryts.

Tjänstinstansen har redan stängts och kan inte ändras i dessa tillstånd.

Tjänstinstansen är felaktig och kan inte ändras i dessa tillstånd.

Exempel

Uri baseAddress = new Uri("http://localhost:8000/ServiceModelSamples/service");

// Create a ServiceHost for the CalculatorService type and provide the base address.
using (ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService), baseAddress))
{
    serviceHost.Open();
    OperationContext operationContext = OperationContext.Current;
    InstanceContext instanceContext = operationContext.InstanceContext;
    CalculatorService service = (CalculatorService)instanceContext.GetServiceInstance(msg);
}

Kommentarer

Den allmänna tanken är att du bara skapar en instans av tjänsten när ett meddelande som riktas mot den kommer, genom att anropa Open. Om inget meddelande kommer skapas inget InstanceContext och inget tjänstobjekt skapas, och därför distribueras inte resurser förrän det faktiskt krävs.

Gäller för