Updates for CODEOWNERS
[mono-project.git] / mono / tests / appdomain-serialize-exception.cs
blob8b0fe47fdbf61eebc1d70f9d4dc489c7e6f7eec4
1 using System;
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 ();
18 public class Example
20 public static int Main ()
22 string original_domain = AppDomain.CurrentDomain.FriendlyName;
24 AppDomain ad = AppDomain.CreateDomain("subdomain");
25 try {
26 TestOutput remoteOutput = (TestOutput) ad.CreateInstanceAndUnwrap(
27 typeof (TestOutput).Assembly.FullName,
28 "TestOutput");
29 remoteOutput.ThrowUnserializable ();
30 } catch (SerializationException) {
31 Console.WriteLine ("Caught serialization exception");
32 } catch (Exception) {
33 Console.WriteLine ("Caught other exception");
34 Environment.Exit (1);
35 } finally {
36 Console.WriteLine ("Finally in domain {0}", AppDomain.CurrentDomain.FriendlyName);
37 if (original_domain != AppDomain.CurrentDomain.FriendlyName)
38 Environment.Exit (2);
39 AppDomain.Unload (ad);
42 Console.WriteLine ("All OK");
43 return 0;