IMethodMessage.LogicalCallContext プロパティ
アセンブリ: mscorlib (mscorlib.dll 内)

現在のメソッド呼び出しの LogicalCallContext を取得します。


何らかの値が論理スレッドに結び付けられているかどうかを確認する LogicalCallContext プロパティの使用方法については、次のコード例を参照してください。
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 'New <SecurityPermission(SecurityAction.LinkDemand)> _ Public Sub New(type As Type, targetObject As MarshalByRefObject) MyBase.New(type) Me.targetObject = targetObject End Sub 'New <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 'MyProxy
public class MyProxy : RealProxy { String stringUri; MarshalByRefObject targetObject; [SecurityPermission(SecurityAction.LinkDemand)] public MyProxy(Type type) : base(type) { targetObject = (MarshalByRefObject)Activator.CreateInstance(type); ObjRef myObject = RemotingServices.Marshal(targetObject); stringUri = myObject.URI; } [SecurityPermission(SecurityAction.LinkDemand)] public MyProxy(Type type, MarshalByRefObject targetObject) : base(type) { this.targetObject = targetObject; } [SecurityPermissionAttribute(SecurityAction.LinkDemand, Flags=SecurityPermissionFlag.Infrastructure)] 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; } }
//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; } };
/** @attribute SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.Infrastructure)public class MyProxyAttribute extends ProxyAttribute */ public class MyProxy extends RealProxy { private String stringUri; private MarshalByRefObject targetObject; public MyProxy(Type type) { super(type); targetObject =(MarshalByRefObject)Activator.CreateInstance(type); ObjRef myObject = RemotingServices.Marshal(targetObject); stringUri = myObject.get_URI(); } //MyProxy public MyProxy(Type type, MarshalByRefObject targetObject) { super(type); this.targetObject = targetObject; } //MyProxy public IMessage Invoke(IMessage message) { message.get_Properties() .set_Item( "__Uri" , stringUri ); IMethodMessage myMethodMessage = (IMethodMessage)ChannelServices.SyncDispatchMessage(message); Console.WriteLine("---------IMethodMessage example-------"); Console.WriteLine("Method name : " + myMethodMessage.get_MethodName()); Console.WriteLine("LogicalCallContext has information : " + myMethodMessage.get_LogicalCallContext().get_HasInfo()); Console.WriteLine("Uri : " + myMethodMessage.get_Uri()); return myMethodMessage ; } //Invoke } //MyProxy


Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- IMethodMessage.LogicalCallContext プロパティのページへのリンク