ILogicalThreadAffinative Arabirim
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
içindeki bir nesnesinin AppDomain dışına yayabilen bir LogicalCallContextnesneyi işaretler.
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
- Öznitelikler
Örnekler
Aşağıdaki kod örneği, Kimlik ve Sorumlu Nesnelerini tanımlama amacıyla uzak bir konuma iletmek için arabiriminin ILogicalThreadAffinative kullanımını gösterir. Örnekte kullanılan sınıfın HelloServiceClass
kodunu görüntülemek için yöntem örneğine GetData bakın. Bu örnekte kullanılan sunucu sınıfının kodunu görüntülemek için sınıf örneğine RegisterActivatedServiceType bakın. Örnekte kullanılan istemci sınıfının kodunu görüntülemek için sınıfın örneğine CallContext bakın.
[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
Açıklamalar
Başka AppDomainbir içindeki bir nesneye uzak yöntem çağrısı yapıldığında, geçerli CallContext sınıf uzak konuma yapılan çağrıyla birlikte hareket eden bir LogicalCallContext oluşturur. Yalnızca arabirimini ILogicalThreadAffinative kullanıma sunan ve içinde CallContext depolanan nesneler dışında AppDomainyayılır. Bu arabirimi desteklemeyen nesneler uzak yöntem çağrıları olan örneklerde LogicalCallContext iletilmez.