ILogicalThreadAffinative インターフェイス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
AppDomain に格納して、LogicalCallContext の外部に転送できるオブジェクトをマークします。
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 使用して、識別のために プリンシパル オブジェクトと ID オブジェクト をリモートの場所に送信する方法を示します。 サンプルで使用されているクラスのコードを 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 します。 インターフェイスを公開し、 にILogicalThreadAffinativeCallContext格納されているオブジェクトのみが、 の外部にAppDomain反映されます。 このインターフェイスをサポートしていないオブジェクトは、リモート メソッド呼び出しを使用するインスタンスでは LogicalCallContext 送信されません。
適用対象
.NET