InstanceContext.GetServiceInstance 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
返回服务的实例。
重载
| 名称 | 说明 |
|---|---|
| GetServiceInstance() |
返回实例上下文的服务实例。 |
| GetServiceInstance(Message) |
返回实例上下文的服务实例,以响应传入消息。 |
GetServiceInstance()
返回实例上下文的服务实例。
public:
System::Object ^ GetServiceInstance();
public object GetServiceInstance();
member this.GetServiceInstance : unit -> obj
Public Function GetServiceInstance () As Object
返回
表示服务实例的对象。
例外
服务实例处于创建或打开状态或未初始化。
服务实例已中止。
服务实例已关闭,并且无法在这些状态下修改。
服务实例出错,不能在这些状态下修改。
示例
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();
}
适用于
GetServiceInstance(Message)
- Source:
- InstanceContext.cs
- Source:
- InstanceContext.cs
- Source:
- InstanceContext.cs
返回实例上下文的服务实例,以响应传入消息。
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
参数
- message
- Message
触发创建服务对象的传入消息。
返回
表示服务实例的对象。
例外
服务实例处于创建或打开状态或未初始化。
服务实例已中止。
服务实例已关闭,并且无法在这些状态下修改。
服务实例出错,不能在这些状态下修改。
示例
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);
}
注解
一般思路是,仅在定向到服务的消息到达时创建服务实例,方法是调用 Open;如果没有消息到达, InstanceContext 则不会创建消息,并且不会创建任何服务对象,因此在实际需要之前不会部署资源。