IMethodMessage.LogicalCallContext Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient LogicalCallContext pour l'appel de méthode en cours.
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
Valeur de propriété
Obtient LogicalCallContext pour l'appel de méthode en cours.
- Attributs
Exceptions
L’appelant immédiat effectue l’appel via une référence à l’interface et ne dispose pas d’autorisation d’infrastructure.
Exemples
L’exemple de code suivant montre comment utiliser la LogicalCallContext
propriété pour déterminer si des valeurs sont attachées au thread logique.
//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