[Mono-list] late linking & dynamic invocation ...

Michael Meeks michael@ximian.com
03 Jul 2002 17:30:56 +0100

Hi Paolo,

On Sun, 2002-06-30 at 17:33, Paolo Molaro wrote:
> I haven't looked into how remoting may fit into the picture, but I think
> it would be good to have CORBA support tightly integrated into mono.

	Sure; whatever :-)

> All this stuff should be able to reside in a separate module that can be
> loaded by the runtime on demand and it could work basically the same way
> the perl (and probably the python) binding to orbit works.


> You always need the idl file or the interface repository: at this point
> you can do two things:
> *) use libidl and create a proxy class on the fly

	Unfortunately it's pretty useless for the C# programmer if he can't
invoke methods on it without writing his own 'stub' code thus:

	Object [] args = { "hello", "world" ... };
	constructedProxy.Invoke (args); 

	The problem is the above sucks rocks, is no more type safe than really
late linking and just well, ugly.
> *) the same, but the create an assembly on disk (so it can be cached)
> Note that this 'compilation' doesn't need external tools and it can be
> done on the fly (using System.Reflection.Emit).

	The marshalling the types to CORBA will be trivial, and fast if we have
the type data - I'm not concerned in the least about that - it's just a
bit of magic manipulation.

	So my beef is not with any of the easy stuff - making it work, but with
the ugly syntax of CORBA invocations in C# - that is if we don't have
compiled stubs [ again ].



 mmeeks@gnu.org  <><, Pseudo Engineer, itinerant idiot