When I use the returned value from a remote method, that returned value is a proxy. Dealing with that proxy is really slow, as it does some remoting work of its own. Is it possible to specify that returned values should be copied to local copies on the client machine? I suspect that if I simply created an instance myself by copying the proxy, that would take still make all the remote calls to access the proxy’s member variables, etc.

I have tried declaring my class with the [Serializable] attribute, rather than deriving it from MarshalByRefObject, but when I do this, the remoting framework throws and exception saying that I need to be marshaled by reference.

Any ideas?