public void InvokeMethodTest() { var s = new System.Collections.Specialized.StringCollection(); s.AddRange(new[] { "A", "B", "C" }); var sa = new string[3]; Assert.That(() => s.InvokeMethod("CopyTo", new[] { typeof(string[]), typeof(int) }, new object[] { sa, 0 }), Throws.Nothing); Assert.That(() => s.InvokeMethod("CopyTo", sa, 0), Throws.Nothing); Assert.That(sa[0] == "A"); Assert.That(() => s.InvokeMethod("Clear"), Throws.Nothing); Assert.That(s.Count == 0); s.AddRange(sa); Assert.That(() => s.InvokeMethod("Clear", Type.EmptyTypes, null), Throws.Nothing); Assert.That(s.Count == 0); Assert.That(() => s.InvokeMethod("Clr", Type.EmptyTypes, null), Throws.ArgumentException); Assert.That(() => s.InvokeMethod <DateTime>("ToBinary", Type.EmptyTypes, null), Throws.ArgumentException); }