IMethodMessage.LogicalCallContext Özellik
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.
Geçerli yöntem çağrısı için öğesini LogicalCallContext alır.
public:
property System::Runtime::Remoting::Messaging::LogicalCallContext ^ LogicalCallContext { System::Runtime::Remoting::Messaging::LogicalCallContext ^ get(); };
public System.Runtime.Remoting.Messaging.LogicalCallContext LogicalCallContext { get; }
public System.Runtime.Remoting.Messaging.LogicalCallContext LogicalCallContext { [System.Security.SecurityCritical] get; }
member this.LogicalCallContext : System.Runtime.Remoting.Messaging.LogicalCallContext
[<get: System.Security.SecurityCritical>]
member this.LogicalCallContext : System.Runtime.Remoting.Messaging.LogicalCallContext
Public ReadOnly Property LogicalCallContext As LogicalCallContext
Özellik Değeri
Geçerli yöntem çağrısı için öğesini LogicalCallContext alır.
- Öznitelikler
Özel durumlar
Hemen çağıran, arabirimine bir başvuru aracılığıyla çağrı yapar ve altyapı iznine sahip değildir.
Örnekler
Aşağıdaki örnek kod, mantıksal iş parçacığına herhangi bir değerin LogicalCallContext
eklenip eklenmediğini belirlemek için özelliğinin nasıl kullanılacağını gösterir.
//This sample requires full trust
[PermissionSetAttribute(SecurityAction::Demand, Name = "FullTrust")]
public ref class MyProxy: public RealProxy
{
private:
String^ stringUri;
MarshalByRefObject^ targetObject;
public:
MyProxy( Type^ type )
: RealProxy( type )
{
targetObject = dynamic_cast<MarshalByRefObject^>(Activator::CreateInstance( type ));
ObjRef^ myObject = RemotingServices::Marshal( targetObject );
stringUri = myObject->URI;
}
MyProxy( Type^ type, MarshalByRefObject^ targetObject )
: RealProxy( type )
{
this->targetObject = targetObject;
}
virtual IMessage^ Invoke( IMessage^ message ) override
{
message->Properties[ "__Uri" ] = stringUri;
IMethodMessage^ myMethodMessage = dynamic_cast<IMethodMessage^>(ChannelServices::SyncDispatchMessage( message ));
Console::WriteLine( "---------IMethodMessage* example-------" );
Console::WriteLine( "Method name : {0}", myMethodMessage->MethodName );
Console::WriteLine( "LogicalCallContext has information : {0}", myMethodMessage->LogicalCallContext->HasInfo );
Console::WriteLine( "Uri : {0}", myMethodMessage->Uri );
return myMethodMessage;
}
};
public class MyProxy : RealProxy
{
String stringUri;
MarshalByRefObject targetObject;
public MyProxy(Type type) : base(type)
{
targetObject = (MarshalByRefObject)Activator.CreateInstance(type);
ObjRef myObject = RemotingServices.Marshal(targetObject);
stringUri = myObject.URI;
}
public MyProxy(Type type, MarshalByRefObject targetObject) : base(type)
{
this.targetObject = targetObject;
}
public override IMessage Invoke(IMessage message)
{
message.Properties["__Uri"] = stringUri;
IMethodMessage myMethodMessage =
(IMethodMessage)ChannelServices.SyncDispatchMessage(message);
Console.WriteLine("---------IMethodMessage example-------");
Console.WriteLine("Method name : " + myMethodMessage.MethodName);
Console.WriteLine("LogicalCallContext has information : " +
myMethodMessage.LogicalCallContext.HasInfo);
Console.WriteLine("Uri : " + myMethodMessage.Uri);
return myMethodMessage;
}
}
Public Class MyProxy
Inherits RealProxy
Private stringUri As String
Private targetObject As MarshalByRefObject
<SecurityPermission(SecurityAction.LinkDemand)> _
Public Sub New(type As Type)
MyBase.New(type)
targetObject = CType(Activator.CreateInstance(type), MarshalByRefObject)
Dim myObject As ObjRef = RemotingServices.Marshal(targetObject)
stringUri = myObject.URI
End Sub
<SecurityPermission(SecurityAction.LinkDemand)> _
Public Sub New(type As Type, targetObject As MarshalByRefObject)
MyBase.New(type)
Me.targetObject = targetObject
End Sub
<SecurityPermissionAttribute(SecurityAction.LinkDemand, Flags:=SecurityPermissionFlag.Infrastructure)> _
Public Overrides Function Invoke(message As IMessage) As IMessage
message.Properties("__Uri") = stringUri
Dim myMethodMessage As IMethodMessage = _
CType(ChannelServices.SyncDispatchMessage(message), IMethodMessage)
Console.WriteLine("---------IMethodMessage example-------")
Console.WriteLine("Method name : " + myMethodMessage.MethodName)
Console.WriteLine("LogicalCallContext has information : " + _
myMethodMessage.LogicalCallContext.HasInfo.ToString())
Console.WriteLine("Uri : " + myMethodMessage.Uri)
Return myMethodMessage
End Function 'Invoke
End Class