ILogicalThreadAffinative インターフェイス
アセンブリ: mscorlib (mscorlib.dll 内)
構文
別の AppDomain 内のオブジェクトに対してリモート メソッド呼び出しが実行されると、現在の CallContext クラスが LogicalCallContext を生成し、これが呼び出しと一緒にリモートの該当の場所へ転送されます。ILogicalThreadAffinative インターフェイスを公開し、CallContext 内に格納されているオブジェクトだけが、AppDomain の外部に転送されます。このインターフェイスをサポートしていないオブジェクトは、リモートのメソッド呼び出しで生成される LogicalCallContext インスタンスでは転送されません。
ILogicalThreadAffinative インターフェイスを使用して、識別用の プリンシパル オブジェクトと ID オブジェクト をリモートの場所に転送する方法を次のコード例に示します。この例で使用されている HelloServiceClass クラスのコードを確認するには、GetData メソッドの例を参照してください。この例で使用されているサーバー クラスのコードを確認するには、RegisterActivatedServiceType クラスの例を参照してください。サンプルで使用するクライアント クラスのコードを表示するには、CallContext クラスのトピックの例を参照してください。
<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 'New End Class 'LogicalCallContextData
[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 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; } };
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
ILogicalThreadAffinative メンバ
- ILogicalThreadAffinativeのページへのリンク