public void CreateProxyTypeTest() { MethodFilterProxyTypeFactory proxyFactory = new MethodFilterProxyTypeFactory("Xphter.Framework.Reflection.Tests.Proxies"); try { TestClass3 <double> obj1 = new TestClass3 <double>(); TestClass3 <float> obj2 = (TestClass3 <float>)Activator.CreateInstance(proxyFactory.CreateProxyType(typeof(TestClass3 <>)).MakeGenericType(typeof(float))); TestClass3 <double> obj3 = (TestClass3 <double>)Activator.CreateInstance(proxyFactory.CreateProxyType(typeof(TestClass3 <double>))); Assert.AreEqual(obj1.TestMethod1(), obj2.TestMethod1()); Assert.AreEqual(obj1.TestMethod1(13), obj2.TestMethod1(13)); Assert.AreEqual(obj1.TestMethod3 <Attribute, ProgressChangedEventArgs, ArrayList>(null, null, null), obj2.TestMethod3 <Attribute, ProgressChangedEventArgs, ArrayList>(null, null, null)); Assert.AreEqual(obj1.TestMethod1(), obj3.TestMethod1()); Assert.AreEqual(obj1.TestMethod1(13), obj3.TestMethod1(13)); Assert.AreEqual(obj1.TestMethod3 <Attribute, ProgressChangedEventArgs, ArrayList>(null, null, null), obj3.TestMethod3 <Attribute, ProgressChangedEventArgs, ArrayList>(null, null, null)); obj1.TestProperty1 = 13; obj2.TestProperty1 = 13; obj3.TestProperty1 = 13; Assert.AreEqual(obj1.TestProperty1, obj2.TestProperty1); Assert.AreEqual(obj1.TestProperty1, obj3.TestProperty1); } finally { #if DEBUG proxyFactory.SaveAssembly(null); #endif } }
public void CycleTest() { MethodFilterProxyTypeFactory proxyFactory = new MethodFilterProxyTypeFactory("Xphter.Framework.Reflection.Tests.Proxies"); IObjectFactory objectFactory = new XmlConfigurationObjectFactory(CONFIG_FILE_NAME, new Assembly[] { Assembly.GetExecutingAssembly(), }, proxyFactory); objectFactory.CreateInstance <ClassD5>(); }
public void SuccessTest_WithProxyFactory() { MethodFilterProxyTypeFactory proxyFactory = new MethodFilterProxyTypeFactory("Xphter.Framework.Reflection.Tests.Proxies"); IObjectFactory objectFactory = new XmlConfigurationObjectFactory(CONFIG_FILE_NAME, new Assembly[] { Assembly.GetExecutingAssembly(), }, proxyFactory); try { IClassA obj1 = objectFactory.CreateInstance <IClassA>(); string name1 = obj1.Test(13); IClassA obj2 = objectFactory.CreateInstance <IClassA>(); string name2 = obj1.Test(18); } finally { #if DEBUG proxyFactory.SaveAssembly(null); #endif } }