コード例 #1
0
        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
            }
        }
コード例 #2
0
        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>();
        }
コード例 #3
0
        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
            }
        }