ReleaseInstanceMode 列舉


指定系統在作業引動過程處理中回收服務物件的時間。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


AfterCall 2

在完成作業之後回收物件。Recycles the object subsequent to the completion of the operation.

BeforeAndAfterCall 3

在呼叫作業之前以及完成作業之後回收物件。Recycles the object prior to calling the operation and subsequent to the completion of the operation.

BeforeCall 1

在呼叫作業之前回收物件。Recycles the object prior to calling the operation.

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);
  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;

    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


ReleaseInstanceMode 使用搭配屬性來通知WindowsCommunicationFoundation(WCF)必須在調用進程中的特定點回收目前ReleaseInstanceMode的服務物件。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.