AppDomain.CurrentDomain.ExecuteAssembly (
assembly.Location);
Assert.Fail ("#1");
-#if NET_2_0
} catch (MissingMethodException ex) {
// Entry point not found in assembly '...'
Assert.AreEqual (typeof (MissingMethodException), ex.GetType (), "#2");
Assert.IsNotNull (ex.Message, "#4");
Assert.IsTrue (ex.Message.IndexOf (assembly.FullName) != -1, "#5");
}
-#else
- } catch (COMException ex) {
- // Unspecified error
- Assert.AreEqual (typeof (COMException), ex.GetType (), "#2");
- Assert.AreEqual (-2147467259, ex.ErrorCode, "#3");
- Assert.IsNull (ex.InnerException, "#4");
- Assert.IsNotNull (ex.Message, "#5");
- }
-#endif
}
[Test] // ExecuteAssembly (String, Evidence)
assembly.Location,
(Evidence) null);
Assert.Fail ("#1");
-#if NET_2_0
} catch (MissingMethodException ex) {
// Entry point not found in assembly '...'
Assert.AreEqual (typeof (MissingMethodException), ex.GetType (), "#2");
Assert.IsNotNull (ex.Message, "#4");
Assert.IsTrue (ex.Message.IndexOf (assembly.FullName) != -1, "#5");
}
-#else
- } catch (COMException ex) {
- // Unspecified error
- Assert.AreEqual (typeof (COMException), ex.GetType (), "#2");
- Assert.AreEqual (-2147467259, ex.ErrorCode, "#3");
- Assert.IsNull (ex.InnerException, "#4");
- Assert.IsNotNull (ex.Message, "#5");
- }
-#endif
}
[Test] // ExecuteAssembly (String, Evidence, String [])
(Evidence) null,
new string [0]);
Assert.Fail ("#1");
-#if NET_2_0
} catch (MissingMethodException ex) {
// Entry point not found in assembly '...'
Assert.AreEqual (typeof (MissingMethodException), ex.GetType (), "#2");
Assert.IsNotNull (ex.Message, "#4");
Assert.IsTrue (ex.Message.IndexOf (assembly.FullName) != -1, "#5");
}
-#else
- } catch (COMException ex) {
- // Unspecified error
- Assert.AreEqual (typeof (COMException), ex.GetType (), "#2");
- Assert.AreEqual (-2147467259, ex.ErrorCode, "#3");
- Assert.IsNull (ex.InnerException, "#4");
- Assert.IsNotNull (ex.Message, "#5");
- }
-#endif
}
[Test] // ExecuteAssembly (String, Evidence, String [], Byte [], AssemblyHashAlgorithm)
(byte []) null,
AssemblyHashAlgorithm.SHA1);
Assert.Fail ("#1");
-#if NET_2_0
} catch (MissingMethodException ex) {
// Entry point not found in assembly '...'
Assert.AreEqual (typeof (MissingMethodException), ex.GetType (), "#2");
Assert.IsNotNull (ex.Message, "#4");
Assert.IsTrue (ex.Message.IndexOf (assembly.FullName) != -1, "#5");
}
-#else
- } catch (COMException ex) {
- // Unspecified error
- Assert.AreEqual (typeof (COMException), ex.GetType (), "#2");
- Assert.AreEqual (-2147467259, ex.ErrorCode, "#3");
- Assert.IsNull (ex.InnerException, "#4");
- Assert.IsNotNull (ex.Message, "#5");
- }
-#endif
}
[Test] // bug #79720
try {
AppDomain.CurrentDomain.Load (aname);
Assert.Fail ("#C9");
-#if NET_2_0
} catch (SecurityException) {
// Invalid assembly public key
}
-#else
- } catch (FileLoadException) {
- }
-#endif
aname = new AssemblyName ();
aname.Name = "bug79522C";
// we have no public way to get the default appdomain
}
+ static bool resolve_called;
+
+ [Test]
+ public void AssemblyResolveParseError ()
+ {
+ AppDomain currentDomain = AppDomain.CurrentDomain;
+ ResolveEventHandler d = ParseErrorResolve;
+ currentDomain.AssemblyResolve += d;
+ try {
+ resolve_called = false;
+ var a = Assembly.Load ("MyDynamicType, 1.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756");
+ Assert.Fail ();
+ } catch (FileNotFoundException) {
+ Assert.IsTrue (resolve_called);
+ }
+ currentDomain.AssemblyResolve -= d;
+ }
+
+ static Assembly ParseErrorResolve (object sender, ResolveEventArgs args)
+ {
+ resolve_called = true;
+ return null;
+ }
+
[Test]
public void ReflectionOnlyGetAssemblies ()
{
}
#endif
+ public class StuffToPick
+ {
+ public StuffToPick () {}
+ public void Method () {}
+ public int Property { get; set; }
+ public event Action Event;
+ public int Field;
+ public void GenericMethod<T> () {}
+ }
+
+ public class StuffToPick<T>
+ {
+ public StuffToPick () {}
+ public void Method () {}
+ public int Property { get; set; }
+ public event Action Event;
+ public int Field;
+ public void GenericMethod<T> () {}
+ }
+
+ static void TestSerialization (CrossDomainTester tester, object o)
+ {
+ Assert.AreSame (o, tester.ReturnArg0 (o), "serializing_type_" + o.GetType ());
+ }
+
+ [Test] //BXC #12611
+ public void ReflectionObjectsAreSerializableTest ()
+ {
+ ad = CreateTestDomain (tempDir, true);
+ CrossDomainTester tester = CreateCrossDomainTester (ad);
+
+ TestSerialization (tester, typeof (StuffToPick));
+ TestSerialization (tester, typeof (StuffToPick).GetConstructor(new Type [0]));
+ TestSerialization (tester, typeof (StuffToPick).GetMethod ("Method"));
+ TestSerialization (tester, typeof (StuffToPick).GetProperty ("Property"));
+ TestSerialization (tester, typeof (StuffToPick).GetEvent ("Event"));
+ TestSerialization (tester, typeof (StuffToPick).GetField ("Field"));
+ TestSerialization (tester, typeof (StuffToPick).GetMethod ("GenericMethod"));
+
+ TestSerialization (tester, typeof (StuffToPick<>));
+ TestSerialization (tester, typeof (StuffToPick<>).GetConstructor(new Type [0]));
+ TestSerialization (tester, typeof (StuffToPick<>).GetMethod ("Method"));
+ TestSerialization (tester, typeof (StuffToPick<>).GetProperty ("Property"));
+ TestSerialization (tester, typeof (StuffToPick<>).GetEvent ("Event"));
+ TestSerialization (tester, typeof (StuffToPick<>).GetField ("Field"));
+ TestSerialization (tester, typeof (StuffToPick<>).GetMethod ("GenericMethod"));
+
+ TestSerialization (tester, typeof (StuffToPick<int>));
+ TestSerialization (tester, typeof (StuffToPick<int>).GetConstructor(new Type [0]));
+ TestSerialization (tester, typeof (StuffToPick<int>).GetMethod ("Method"));
+ TestSerialization (tester, typeof (StuffToPick<int>).GetProperty ("Property"));
+ TestSerialization (tester, typeof (StuffToPick<int>).GetEvent ("Event"));
+ TestSerialization (tester, typeof (StuffToPick<int>).GetField ("Field"));
+ TestSerialization (tester, typeof (StuffToPick<int>).GetMethod ("GenericMethod"));
+ }
+
+ [Test] //BXC #12611
+ [Category ("NotWorking")] // Serialization can't handle generic methods
+ public void GenericReflectionObjectsAreSerializableTest ()
+ {
+ ad = CreateTestDomain (tempDir, true);
+ CrossDomainTester tester = CreateCrossDomainTester (ad);
+
+ TestSerialization (tester, typeof (StuffToPick).GetMethod ("GenericMethod").MakeGenericMethod (typeof (int)));
+ TestSerialization (tester, typeof (StuffToPick<>).GetMethod ("GenericMethod").MakeGenericMethod (typeof (int)));
+ TestSerialization (tester, typeof (StuffToPick<int>).GetMethod ("GenericMethod").MakeGenericMethod (typeof (int)));
+ }
+
private static AppDomain CreateTestDomain (string baseDirectory, bool assemblyResolver)
{
AppDomainSetup setup = new AppDomainSetup ();
return true;
}
}
+
+ public object ReturnArg0 (object obj)
+ {
+ return obj;
+ }
}
[Serializable ()]