ChannelServices.SyncDispatchMessage メソッド
アセンブリ: mscorlib (mscorlib.dll 内)

Dim msg As IMessage Dim returnValue As IMessage returnValue = ChannelServices.SyncDispatchMessage(msg)
戻り値
サーバー側のチェインへの呼び出しによって、返信メッセージが返されます。


' Create a custom 'RealProxy'. Public Class MyProxy Inherits RealProxy Private myURIString As String Private myMarshalByRefObject As MarshalByRefObject <PermissionSet(SecurityAction.LinkDemand)> _ Public Sub New(ByVal myType As Type) MyBase.New(myType) ' RealProxy uses the Type to generate a transparent proxy. myMarshalByRefObject = CType(Activator.CreateInstance(myType), MarshalByRefObject) ' Get 'ObjRef', for transmission serialization between application domains. Dim myObjRef As ObjRef = RemotingServices.Marshal(myMarshalByRefObject) ' Get the 'URI' property of 'ObjRef' and store it. myURIString = myObjRef.URI Console.WriteLine("URI :{0}", myObjRef.URI) End Sub 'New <SecurityPermissionAttribute(SecurityAction.LinkDemand, Flags:=SecurityPermissionFlag.Infrastructure)> _ Public Overrides Function Invoke(ByVal myIMessage As IMessage) As IMessage Console.WriteLine("MyProxy.Invoke Start") Console.WriteLine("") If TypeOf myIMessage Is IMethodCallMessage Then Console.WriteLine("IMethodCallMessage") End If If TypeOf myIMessage Is IMethodReturnMessage Then Console.WriteLine("IMethodReturnMessage") End If Dim msgType As Type msgType = CObj(myIMessage).GetType Console.WriteLine("Message Type: {0}", msgType.ToString()) Console.WriteLine("Message Properties") Dim myIDictionary As IDictionary = myIMessage.Properties ' Set the '__Uri' property of 'IMessage' to 'URI' property of 'ObjRef'. myIDictionary("__Uri") = myURIString Dim myIDictionaryEnumerator As IDictionaryEnumerator = CType(myIDictionary.GetEnumerator(), _ IDictionaryEnumerator) While myIDictionaryEnumerator.MoveNext() Dim myKey As Object = myIDictionaryEnumerator.Key Dim myKeyName As String = myKey.ToString() Dim myValue As Object = myIDictionaryEnumerator.Value Console.WriteLine(ControlChars.Tab + "{0} : {1}", myKeyName, myIDictionaryEnumerator.Value) If myKeyName = "__Args" Then Dim myObjectArray As Object() = CType(myValue, Object()) Dim aIndex As Integer For aIndex = 0 To myObjectArray.Length - 1 Console.WriteLine(ControlChars.Tab + ControlChars.Tab + "arg: {0} myValue: {1}", _ aIndex, myObjectArray(aIndex)) Next aIndex End If If myKeyName = "__MethodSignature" And Not Nothing Is myValue Then Dim myObjectArray As Object() = CType(myValue, Object()) Dim aIndex As Integer For aIndex = 0 To myObjectArray.Length - 1 Console.WriteLine(ControlChars.Tab + ControlChars.Tab + "arg: {0} myValue: {1}", _ aIndex, myObjectArray(aIndex)) Next aIndex End If End While Dim myReturnMessage As IMessage myIDictionary("__Uri") = myURIString Console.WriteLine("__Uri {0}", myIDictionary("__Uri")) Console.WriteLine("ChannelServices.SyncDispatchMessage") myReturnMessage = ChannelServices.SyncDispatchMessage(CObj(myIMessage)) ' Push return value and OUT parameters back onto stack. Dim myMethodReturnMessage As IMethodReturnMessage = CType(myReturnMessage, IMethodReturnMessage) Console.WriteLine("IMethodReturnMessage.ReturnValue: {0}", myMethodReturnMessage.ReturnValue) Console.WriteLine("MyProxy.Invoke - Finish") Return myReturnMessage End Function 'Invoke End Class 'MyProxy
// Create a custom 'RealProxy'. public class MyProxy : RealProxy { String myURIString; MarshalByRefObject myMarshalByRefObject; [PermissionSet(SecurityAction.LinkDemand)] public MyProxy(Type myType) : base(myType) { // RealProxy uses the Type to generate a transparent proxy. myMarshalByRefObject = (MarshalByRefObject)Activator.CreateInstance((myType)); // Get 'ObjRef', for transmission serialization between application domains. ObjRef myObjRef = RemotingServices.Marshal(myMarshalByRefObject); // Get the 'URI' property of 'ObjRef' and store it. myURIString = myObjRef.URI; Console.WriteLine("URI :{0}", myObjRef.URI); } [SecurityPermissionAttribute(SecurityAction.LinkDemand, Flags=SecurityPermissionFlag.Infrastructure)] public override IMessage Invoke(IMessage myIMessage) { Console.WriteLine("MyProxy.Invoke Start"); Console.WriteLine(""); if (myIMessage is IMethodCallMessage) Console.WriteLine("IMethodCallMessage"); if (myIMessage is IMethodReturnMessage) Console.WriteLine("IMethodReturnMessage"); Type msgType = myIMessage.GetType(); Console.WriteLine("Message Type: {0}", msgType.ToString()); Console.WriteLine("Message Properties"); IDictionary myIDictionary = myIMessage.Properties; // Set the '__Uri' property of 'IMessage' to 'URI' property of 'ObjRef'. myIDictionary["__Uri"] = myURIString; IDictionaryEnumerator myIDictionaryEnumerator = (IDictionaryEnumerator) myIDictionary.GetEnumerator(); while (myIDictionaryEnumerator.MoveNext()) { Object myKey = myIDictionaryEnumerator.Key; String myKeyName = myKey.ToString(); Object myValue = myIDictionaryEnumerator.Value; Console.WriteLine("\t{0} : {1}", myKeyName, myIDictionaryEnumerator.Value); if (myKeyName == "__Args") { Object[] myObjectArray = (Object[])myValue; for (int aIndex = 0; aIndex < myObjectArray.Length; aIndex++) Console.WriteLine("\t\targ: {0} myValue: {1}", aIndex, myObjectArray[aIndex]); } if ((myKeyName == "__MethodSignature") && (null != myValue)) { Object[] myObjectArray = (Object[])myValue; for (int aIndex = 0; aIndex < myObjectArray.Length; aIndex++) Console.WriteLine("\t\targ: {0} myValue: {1}", aIndex, myObjectArray[aIndex]); } } IMessage myReturnMessage; myIDictionary["__Uri"] = myURIString; Console.WriteLine("__Uri {0}", myIDictionary["__Uri"]); Console.WriteLine("ChannelServices.SyncDispatchMessage"); myReturnMessage = ChannelServices.SyncDispatchMessage(myIMessage); // Push return value and OUT parameters back onto stack. IMethodReturnMessage myMethodReturnMessage = (IMethodReturnMessage) myReturnMessage; Console.WriteLine("IMethodReturnMessage.ReturnValue: {0}", myMethodReturnMessage.ReturnValue); Console.WriteLine("MyProxy.Invoke - Finish"); return myReturnMessage; } }
// Create a custom 'RealProxy'. /** @attribute SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.Infrastructure) */ public class MyProxy extends RealProxy { private String myURIString; private MarshalByRefObject myMarshalByRefObject; public MyProxy(Type myType) { super(myType); // RealProxy uses the Type to generate a transparent proxy. myMarshalByRefObject = (MarshalByRefObject)(Activator.CreateInstance(myType)); // Get 'ObjRef', for transmission serialization between // application domains. ObjRef myObjRef = RemotingServices.Marshal(myMarshalByRefObject); // Get the 'URI' property of 'ObjRef' and store it. myURIString = myObjRef.get_URI(); Console.WriteLine("URI :{0}", myObjRef.get_URI()); } //MyProxy public IMessage Invoke(IMessage myIMessage) { Console.WriteLine("MyProxy.Invoke Start"); Console.WriteLine(""); if (myIMessage instanceof IMethodCallMessage) { Console.WriteLine("IMethodCallMessage"); } if (myIMessage instanceof IMethodReturnMessage) { Console.WriteLine("IMethodReturnMessage"); } Type msgType = myIMessage.GetType(); Console.WriteLine("Message Type: {0}", msgType.ToString()); Console.WriteLine("Message Properties"); IDictionary myIDictionary = myIMessage.get_Properties(); // Set the '__Uri' property of 'IMessage' to 'URI' property of 'ObjRef'. myIDictionary.set_Item("__Uri", myURIString); IDictionaryEnumerator myIDictionaryEnumerator = (IDictionaryEnumerator)(myIDictionary.GetEnumerator()); while (myIDictionaryEnumerator.MoveNext()) { Object myKey = myIDictionaryEnumerator.get_Key(); String myKeyName = myKey.ToString(); Object myValue = myIDictionaryEnumerator.get_Value(); Console.WriteLine("\t{0} : {1}", myKeyName, myIDictionaryEnumerator.get_Value()); if (myKeyName.Equals("__Args")) { Object myObjectArray[] = (Object[])myValue; for (int aIndex = 0; aIndex < myObjectArray.length; aIndex++) { Console.WriteLine("\t\targ: {0} myValue: {1}", (Int32)aIndex, myObjectArray.get_Item(aIndex)); } } if (myKeyName.Equals("__MethodSignature") && null != myValue) { Object myObjectArray[] = (Object[])myValue; for (int aIndex = 0; aIndex < myObjectArray.length; aIndex++) { Console.WriteLine("\t\targ: {0} myValue: {1}", (Int32)aIndex, myObjectArray.get_Item(aIndex)); } } } IMessage myReturnMessage; myIDictionary.set_Item("__Uri", myURIString); Console.WriteLine("__Uri {0}", myIDictionary.get_Item("__Uri")); Console.WriteLine("ChannelServices.SyncDispatchMessage"); myReturnMessage = ChannelServices.SyncDispatchMessage(myIMessage); // Push return value and OUT parameters back onto stack. IMethodReturnMessage myMethodReturnMessage = (IMethodReturnMessage)myReturnMessage; Console.WriteLine("IMethodReturnMessage.ReturnValue: {0}", myMethodReturnMessage.get_ReturnValue()); Console.WriteLine("MyProxy.Invoke - Finish"); return myReturnMessage; } //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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からChannelServices.SyncDispatchMessage メソッドを検索する場合は、下記のリンクをクリックしてください。

- ChannelServices.SyncDispatchMessage メソッドのページへのリンク