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 接口将 主体和标识对象 传输到远程位置进行标识。 若要查看示例中使用的类的代码 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 传输。