ILogicalThreadAffinative 介面

定義

標記一個能在 中傳播到外部AppDomainLogicalCallContext的物件。

public interface class ILogicalThreadAffinative
public interface ILogicalThreadAffinative
[System.Runtime.InteropServices.ComVisible(true)]
public interface ILogicalThreadAffinative
type ILogicalThreadAffinative = interface
[<System.Runtime.InteropServices.ComVisible(true)>]
type ILogicalThreadAffinative = interface
Public Interface ILogicalThreadAffinative
屬性

範例

以下程式碼範例示範如何利用介面 ILogicalThreadAffinative主物件與身份物件 傳送至遠端地點以進行識別。 若要查看範例中使用的 HelloServiceClass 類別程式碼,請參閱該方法的範例 GetData 。 要查看本範例中使用的伺服器類別程式碼,請參閱該 RegisterActivatedServiceType 類別範例。 若要查看範例中使用的客戶端類別程式碼,請參閱該 CallContext 類別的範例。

[Serializable]
public ref class LogicalCallContextData: public ILogicalThreadAffinative
{
private:
   int _nAccesses;
   IPrincipal^ _principal;

public:

   property String^ numOfAccesses 
   {
      String^ get()
      {
         return String::Format( "The identity of {0} has been accessed {1} times.", _principal->Identity->Name, _nAccesses );
      }
   }

   property IPrincipal^ Principal 
   {
      IPrincipal^ get()
      {
         _nAccesses++;
         return _principal;
      }
   }

   LogicalCallContextData( IPrincipal^ p )
   {
      _nAccesses = 0;
      _principal = p;
   }

};
[Serializable]
public class LogicalCallContextData : ILogicalThreadAffinative
{
   int _nAccesses;
   IPrincipal _principal;

   public string numOfAccesses {
      get {
         return String.Format("The identity of {0} has been accessed {1} times.",
                              _principal.Identity.Name,
                              _nAccesses);
      }
   }

   public IPrincipal Principal {
      get {
         _nAccesses ++;
         return _principal;
      }
   }

   public LogicalCallContextData(IPrincipal p) {
      _nAccesses = 0;
      _principal = p;
   }
}
<Serializable()> Public Class LogicalCallContextData
   Implements ILogicalThreadAffinative

   Private _nAccesses As Integer
   Private _principal As IPrincipal
   
   
   Public ReadOnly Property numOfAccesses() As String
      Get
         Return [String].Format("The identity of {0} has been accessed {1} times.", _principal.Identity.Name, _nAccesses)
      End Get
   End Property
   
   
   Public ReadOnly Property Principal() As IPrincipal
      Get
         _nAccesses += 1
         Return _principal
      End Get
   End Property
   
   
   Public Sub New(p As IPrincipal)
      _nAccesses = 0
      _principal = p
   End Sub

End Class

備註

當遠端方法呼叫到另一個 AppDomain物件時,當前 CallContext 類別會 LogicalCallContext 產生一個,隨呼叫一同傳送到遠端位置。 只有暴露ILogicalThreadAffinative介面且儲存在 的CallContext物件才會被傳播到外部。AppDomain 不支援此介面的物件不會在 LogicalCallContext 有遠端方法呼叫的實例中傳送。

適用於