806e40152868b6292b05cfc9c72f0210fef5e862
[mono.git] / docs / remoting
1 Runtime support for Remoting
2 ============================
3
4 The runtime supports a special objects called "TransparentProxy". You can
5 create objects of this type by calling GetTransparentProxy() on a "RealProxy"
6 object. 
7
8 LDFLD/STFLD for transparent proxies
9 ===================================
10
11 Access to fields must be redirected to the remote object. System.Object has
12 some special methods for that:
13
14 void FieldGetter (string typeName, string fieldName, ref object val);
15                 
16 void FieldSetter (string typeName, string fieldName, object val);
17
18 This methods are never called on actual object. The are only used to pack
19 LDFLD/STFLD operations into method call messages, which are then passed to the
20 RealProxy::Invoke() method. 
21
22 There are two helper methods which can be used by the JIT and the interpreter
23 to convert LDFLD/STFLD operations into messages and then call
24 RealProxy::Invoke(): mono_store_remote_field() and mono_load_remote_field().
25
26