Re: syntax question in dealing with .Net api



[newsgroups trimmed since my ISP doesn't carry microsoft.*, f'up set]

Quoth trillich@xxxxxxxxx:

we've got two apps, one in java, one in .Net, and we're trying to put
some glue together to transfer data back and forth between them:

- reading data FROM the .Net application is easy
- writing data TO the .Net application is a puzzle...

to read data from within VB, we can use syntax like VAR =
OBJ.METHOD(PARAMS) and to write fields to an object from within VB
it's also simple: OBJ.METHOD(PARAMS) = VAL.

only the read-style syntax works in exterior languages (Perl is our
platform for proof-of-concept):

$val = $obj->method("param");

but the write-style syntax needs something different:

$obj->method("param") = $expr; # no way

I don't know much about .Net, but when you say 'fields' here are you
referring to what Microsoft call 'properties' in OLE/COM? In that case,
that standard way to access COM objects from Perl is to use the
Win32::OLE module, which provides the syntax

$obj->LetProperty('method', 'param', $expr);

to perform what you are asking for above. See the docs for Win32::OLE.

Since the method/property distinction, in particular the concept of
'properties with arguments which are nevertheless assignable and
different from methods', is very much a VB thing, you will have to use
some sort of OLE-compatibility layer in other languages. I would have
thought most languages that run on Win32 would have a standard COM
binding, by now.

If you are talking to your .Net app through some means other than COM,
you will have to tell us more about what you are doing.

Ben

.



Relevant Pages