IMethodMessage.LogicalCallContext Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft den LogicalCallContext für den aktuellen Methodenaufruf ab.
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
Eigenschaftswert
Ruft den LogicalCallContext für den aktuellen Methodenaufruf ab.
- Attribute
Ausnahmen
Der direkte Aufrufer führt den Aufruf über einen Verweis auf die Schnittstelle durch und hat keine Berechtigung für die Infrastruktur.
Beispiele
Im folgenden Beispielcode wird gezeigt, wie Sie die LogicalCallContext
Eigenschaft verwenden, um festzustellen, ob werte an den logischen Thread angefügt werden.
//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