2 using System.Reflection;
3 using System.Runtime.Serialization;
5 public class UnserializableException : Exception
9 public class TestOutput : MarshalByRefObject
11 public void ThrowUnserializable ()
13 Console.WriteLine("Throwing Unserializable exception in AppDomain \"{0}\"", AppDomain.CurrentDomain.FriendlyName);
14 throw new UnserializableException ();
20 public static int Main ()
22 string original_domain = AppDomain.CurrentDomain.FriendlyName;
24 AppDomain ad = AppDomain.CreateDomain("subdomain");
26 TestOutput remoteOutput = (TestOutput) ad.CreateInstanceAndUnwrap(
27 typeof (TestOutput).Assembly.FullName,
29 remoteOutput.ThrowUnserializable ();
30 } catch (SerializationException) {
31 Console.WriteLine ("Caught serialization exception");
33 Console.WriteLine ("Caught other exception");
36 Console.WriteLine ("Finally in domain {0}", AppDomain.CurrentDomain.FriendlyName);
37 if (original_domain != AppDomain.CurrentDomain.FriendlyName)
39 AppDomain.Unload (ad);
42 Console.WriteLine ("All OK");