Robert,<br><br>Another quick follow up. Suppose that my incoming request were not SOAP -- e.g. it was coming from the proprietary format stream, then implementing a SOAP extension will not do what i want. i know that there must be a way to get the current call, but the APIs seem a bit disjointed. i have looked at
<br><br>MethodInfo.GetCurrentMethod &lt;--&gt; returns a MethodInfo -- no information about the call<br><br>i have looked at StackTrace and StackFrame, but cannot see a way to get the call information off of these classes easily.
<br><br>With a ContextBoundObject i can get hold of an instance implementing <br><br>IMethodCallMessage &lt;--&gt; does have the call information<br><br>But, in the latter case, ContextBoundObject must be in the inheritance chain. Unfortunately, in this case, c# does not allow multiple inheritance; so, an object cannot both be a Service (
e.g. WebService) and a ContextBoundObject. In fact WebService and ContextBoundObject are at odds about marshaling policy. In short, the ContextBoundObject approach is not compositional -- it doesn't compose with other functionality.
<br><br>But, i feel there must be some way to get at the IMethodCallMessage critter.<br><br>Best wishes,<br><br>--greg<br><br><div><span class="gmail_quote">On 8/3/06, <b class="gmail_sendername">L.G. Meredith</b> &lt;<a href="mailto:lgreg.meredith@gmail.com">
lgreg.meredith@gmail.com</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div>Robert,<br><br>Many thanks. i found the SOAP extension stuff just a few hours before your reply. As for the point about the formatter, i have implemented my own formatter. But, the point is the binary formatter already does most of the work i need to do except it adds extra information. In my specialized formatter i just want to extract the bit i need from what the binary formatter has already produced rather than have to write a great deal of formatting code that has already been implemented by binary formatter.
<br><br>Best wishes,<br><br>--greg</div><div><span class="e" id="q_10cd63f22c0b234d_1"><br><br><div><span class="gmail_quote">On 8/3/06, <b class="gmail_sendername">Robert Jordan</b> &lt;<a href="mailto:robertj@gmx.net" title="mailto:robertj@gmx.net" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
robertj@gmx.net</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hey,<br><br>L.G. Meredith wrote:<br>&gt; i'm in the process of writing a gateway application. It speaks SOAP out of<br>&gt; one side of it's mouth and a proprietary network application protocol out<br>&gt; the other.<br>
&gt;
<br>&gt; My application would be much more beautiful and easy to maintain if i had<br>&gt; the following two bits of interface to .net/mono capability.<br>&gt;<br>&gt; 1. i want to trampoline incoming webmethods to invocations to send an
<br>&gt; appropriately formatted message to a tcp stream connected to my app. That<br>&gt; is, i would like to get the current (web) method and it's arguments. i<br>&gt; would<br>&gt; prefer not to copy the incoming arguments to an invocation but to
<br>&gt; generically call an api that will return a data structure providing all the<br>&gt; information associated with the method invocation, including method name<br>&gt; and<br>&gt; actuals (a.k.a. arguments). i can then pass this data structure to my
<br>&gt; stream<br>&gt; formatter to format appropriately for the network stream.<br><br>Implement a SOAP extension:<br><br><a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconAlteringSOAPMessageUsingSOAPExtensions.asp" title="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconAlteringSOAPMessageUsingSOAPExtensions.asp" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconAlteringSOAPMessageUsingSOAPExtensions.asp</a><br><br>&gt; 2. i would like to have the format of the .net/mono binary formatter. It<br><br>

I'm not sure why you need it, but here is it:<br><br><a href="http://svn.myrealbox.com/viewcvs/trunk/mcs/class/corlib/System.Runtime.Serialization.Formatters.Binary/binary_serialization_format.htm?rev=27351&amp;view=log" title="http://svn.myrealbox.com/viewcvs/trunk/mcs/class/corlib/System.Runtime.Serialization.Formatters.Binary/binary_serialization_format.htm?rev=27351&amp;view=log" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">

http://svn.myrealbox.com/viewcvs/trunk/mcs/class/corlib/System.Runtime.Serialization.Formatters.Binary/binary_serialization_format.htm?rev=27351&amp;view=log</a><br><br>&gt; does the work i need to do except that it puts some extra stuff into the
<br>&gt; stream. Currently, i have a hack in which i drop markers into the stream<br>&gt; and<br>&gt; pull out the bytes between the markers to get the appropriately formatted<br>&gt; bytes for the packet i need to send. Obviously, this is a brittle solution.
<br>&gt; If i had the format the binary serializer uses, then i could extract<br>&gt; them in<br>&gt; a better way. Even better, if i had an API that allowed me to extract<br>&gt; naturally distinct pieces, e.g. just member data, excluding class name or
<br>&gt; member name data or even size information, then i could have a very robust<br>&gt; and generic application.<br><br>Such an API doesn't make sense, unless it's intended to be used<br>by non-CLI languages (C/C++...).
<br><br>You should implement a custom formatter, if you need this level of<br>control.<br><br>If you want to intercept remoting calls, you could insert a<br>custom server channel sink after the formatter sink and you'll<br>

be able to access the remoting messages before they get dispatched.<br><br>Robert<br><br>_______________________________________________<br>Mono-list maillist&nbsp;&nbsp;-&nbsp;&nbsp;<a href="mailto:Mono-list@lists.ximian.com" title="mailto:Mono-list@lists.ximian.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
Mono-list@lists.ximian.com
</a><br><a href="http://lists.ximian.com/mailman/listinfo/mono-list" title="http://lists.ximian.com/mailman/listinfo/mono-list" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://lists.ximian.com/mailman/listinfo/mono-list
</a><br></blockquote></div><br><br clear="all"><br></span></div><div><span class="e" id="q_10cd63f22c0b234d_2">-- <br>L.G. Meredith<br>Partner<br>Biosimilarity LLC
<br>505 N 72nd St<br>Seattle, WA 98103<br><br>+1 206.650.3740

</span></div></blockquote></div><br><br clear="all"><br>-- <br>L.G. Meredith<br>Partner<br>Biosimilarity LLC<br>505 N 72nd St<br>Seattle, WA 98103<br><br>+1 206.650.3740