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 傳輸。