ReleaseInstanceMode ReleaseInstanceMode ReleaseInstanceMode ReleaseInstanceMode Enum

定义

指定系统在操作调用进程中回收服务对象的时间。Specifies when the system recycles the service object in the operation invocation process.

public enum class ReleaseInstanceMode
public enum ReleaseInstanceMode
type ReleaseInstanceMode = 
Public Enum ReleaseInstanceMode
继承
ReleaseInstanceModeReleaseInstanceModeReleaseInstanceModeReleaseInstanceMode

字段

AfterCall AfterCall AfterCall AfterCall 2

在完成操作后回收对象。Recycles the object subsequent to the completion of the operation.

BeforeAndAfterCall BeforeAndAfterCall BeforeAndAfterCall BeforeAndAfterCall 3

在调用操作前和完成操作后回收对象。Recycles the object prior to calling the operation and subsequent to the completion of the operation.

BeforeCall BeforeCall BeforeCall BeforeCall 1

在调用操作前回收对象。Recycles the object prior to calling the operation.

None None None None 0

根据 InstanceContextMode 值回收对象。Recycles the object according to the InstanceContextMode value.

示例

下面的代码示例演示如何使用 ReleaseInstanceMode 在调用之前和之后均回收服务对象。The following example code shows the use of ReleaseInstanceMode to recycle service objects both before and after a call.

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);
  }
}
 Friend Class SampleService
  Implements ISampleService
Private id As Guid
Private session As String

Public Sub New()
  id = Guid.NewGuid()
  session = OperationContext.Current.SessionId
  Console.WriteLine("Object {0} has been created.", id)
  Console.WriteLine("For session {0}", session)
End Sub
<OperationBehavior(ReleaseInstanceMode:=ReleaseInstanceMode.BeforeAndAfterCall)> _
Public Function SampleMethod(ByVal msg As String) As String Implements ISampleService.SampleMethod
  Console.WriteLine("The caller said: ""{0}""", msg)
  Console.WriteLine("For session {0}", OperationContext.Current.SessionId)
  Return "The service greets you: " & msg
End Function

Protected Overrides Sub Finalize()
  Console.WriteLine("Object {0} has been destroyed.", id)
  Console.WriteLine("For session {0}", session)
End Sub
 End Class

注解

使用ReleaseInstanceModeReleaseInstanceMode属性以通知 Windows Communication Foundation (WCF),必须在调用过程中的特定点回收当前服务对象。Use the ReleaseInstanceMode with the ReleaseInstanceMode property to inform Windows Communication Foundation (WCF) that the current service object must be recycled at a particular point in the invocation process. 默认行为是根据 InstanceContextMode 值来回收服务对象。The default behavior is to recycle a service object according to the InstanceContextMode value.

适用于