using System; using System.Net; using System.Runtime.Remoting; using System.Runtime.InteropServices; using System.Text; using System.Runtime.Serialization; public class Test: MarshalByRefObject { public static int Main (string[] args) { AppDomain domain = AppDomain.CreateDomain ("testdomain1"); Test server = (Test) domain.CreateInstanceAndUnwrap(typeof(Test).Assembly.FullName, "Test"); return server.RunTest (); } public int RunTest () { try { object t = null; string s = (string)t; AppDomain domain = AppDomain.CreateDomain ("testdomain"); Remo server = (Remo) domain.CreateInstanceAndUnwrap(typeof(Test).Assembly.FullName,"Remo"); if (System.Threading.Thread.GetDomainID () == server.GetDomainId ()) throw new TestException ("Object not created in new domain", 1); Dada d = new Dada (); d.p = 22; server.Run (); server.Run2 (88, "hola"); server.Run3 (99, d, "adeu"); string r = server.Run4 (200, d, "que"); CheckValue (r, "vist", 140); try { server.Run5 (200, d, "que"); throw new TestException ("Exception expected", 150); } catch (Exception ex) { CheckValue (ex.Message, "peta", 151); } Dada d2; d = server.Run6 (99, out d2, "adeu"); CheckValue (d.p, 987, 161); CheckValue (d2.p, 987, 162); d.p = 22; d2 = server.Run7 (d); CheckValue (d.p, 22, 170); CheckValue (d2.p, 33, 170); byte[] ba = new byte[5]; for (byte n=0; n