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");