<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.6000.16414" name=GENERATOR></HEAD>
<BODY><FONT face=Arial size=2>
<DIV>Hello,</DIV>
<DIV> </DIV>
<DIV>We've recently started using RDNZL for integration between an 
internal<BR>application written in ACL 7.0 and a CAD system using a 
.Net-based<BR>extension-layer in the latter; using .Net Remoting for 
communicating<BR>between the two systems. We've found that RDNZL works robustly, 
reliably<BR>and is very easy to use. Thank you very much for creating it.</DIV>
<DIV> </DIV>
<DIV>I have a question with regards to the action of the CAST 
operator:<BR>Currently, when CAST'ing from one .Net class to another, 
the<BR>type of the container is destructively updated; and there doesn't seem 
<BR>to be any way of copying a container so that a reference to the same 
<BR>object but with another type can be created.  That is, I'd like to 
do<BR>something like</DIV>
<DIV> </DIV>
<DIV>   (cast foo "SomeType"))<BR>   (setq bar 
(copy-container foo))<BR>   (cast bar "SomeOtherType"))</DIV>
<DIV> </DIV>
<DIV>without the last operating also setting the type of FOO <BR>to 
SomeOtherType [1]</DIV>
<DIV> </DIV>
<DIV>Is there some idiom that would work like this that I've missed? If<BR>not, 
I guess the functionality would have to be added at the C++<BR>level, which I 
haven't really looked at yet. Any pointers would be<BR>appreciated.</DIV>
<DIV> </DIV>
<DIV><BR>Iver Odin Kvello<BR><A 
href="mailto:iok@selvaag.no">iok@selvaag.no</A><BR> </DIV>
<DIV> </DIV>
<DIV>[1] The actual situation that came up was this: We have a 
remote<BR> object - actually a transparent proxy - of an interface-type 
WALL,<BR> and we need to get a reference to its lease. However, to to this 
we<BR> must cast the object to MarshalByRefObject, and if we use CAST to 
get<BR> this, it is impossible to CAST back to the original 
interface<BR> type. We did find a workaround: 
using<BR> System.Runtime.Remoting.RemotingServices.GetRealProxy, another 
copy<BR> of the transparent proxy is easily obtained, and that can be cast 
to<BR> a MBRO instead. But a copy/cast-operator would have been 
nicer.</DIV>
<DIV> </DIV>
<DIV></FONT> </DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV></BODY></HTML>