IMethodMessage.LogicalCallContext Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает LogicalCallContext для текущего вызова метода.
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
Значение свойства
Возвращает LogicalCallContext для текущего вызова метода.
- Атрибуты
Исключения
Непосредственно вызывающий объект вызывает интерфейс через ссылку и не имеет разрешения на использование инфраструктуры.
Примеры
В следующем примере кода показано, как использовать LogicalCallContext
свойство для определения того, присоединены ли какие-либо значения к логическому потоку.
//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