InstanceContext.GetServiceInstance Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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.