ReleaseInstanceMode 枚举

定义

指定系统在操作调用进程中回收服务对象的时间。

C#
public enum ReleaseInstanceMode
继承
ReleaseInstanceMode

字段

名称 说明
AfterCall 2

在完成操作后回收对象。

BeforeAndAfterCall 3

在调用操作前和完成操作后回收对象。

BeforeCall 1

在调用操作前回收对象。

None 0

根据 InstanceContextMode 值回收对象。

示例

下面的代码示例演示如何使用 ReleaseInstanceMode 在调用之前和之后均回收服务对象。

C#
class SampleService : ISampleService
{
  private Guid id;
  private string session;

  public SampleService()
  {
    id = Guid.NewGuid();
    session = OperationContext.Current.SessionId;
    Console.WriteLine("Object {0} has been created.", id);
    Console.WriteLine("For session {0}", session);
  }
  [OperationBehavior(
          ReleaseInstanceMode=ReleaseInstanceMode.BeforeAndAfterCall
  )]
  public string  SampleMethod(string msg)
  {
    Console.WriteLine("The caller said: \"{0}\"", msg);
    Console.WriteLine("For session {0}", OperationContext.Current.SessionId);
    return "The service greets you: " + msg;
  }

  ~SampleService()
  {
    Console.WriteLine("Object {0} has been destroyed.", id);
    Console.WriteLine("For session {0}", session);
  }
}

注解

ReleaseInstanceMode将 与 属性一起使用ReleaseInstanceMode可通知 Windows Communication Foundation (WCF) 必须在调用过程中的特定点回收当前服务对象。 默认行为是根据 InstanceContextMode 值来回收服务对象。

适用于

产品 版本
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1