Example #1
0
        public void TestIgnoreException()
        {
            var proxy = AspectFactory.BuildProxy <AspectTester>();

            //拦截器没有设置返回值,取返回值类型为非可空类型的值类型时,则会引发新的异常
            proxy.IgnoreException();
        }
Example #2
0
        public void TestPropertyValue()
        {
            var proxy = AspectFactory.BuildProxy <AspectTester>();

            proxy.Name = "fireasy";
            var name = proxy.Name;
        }
Example #3
0
        public void TestGlobalIntercept()
        {
            var proxy = AspectFactory.BuildProxy <AspectTesterEx>();

            Console.WriteLine(proxy.Name);
            Console.WriteLine(proxy.None);
            Console.WriteLine(proxy.TestMethod("huangxd"));
        }
Example #4
0
        public void TestIgnoreAnotherException()
        {
            var proxy = AspectFactory.BuildProxy <AspectTester>();

            var tb = proxy.IgnoreAnotherException();

            Assert.IsNull(tb);
        }
Example #5
0
        public async Task TestAsyncMethod()
        {
            var proxy = AspectFactory.BuildProxy <AspectTester>();

            var str = await proxy.TestAsync("fireasy");

            Assert.AreEqual("hello fireasy", str);
        }
Example #6
0
        public void TestAsyncMethod()
        {
            var proxy = AspectFactory.BuildProxy <AspectTester>();

            var str = proxy.TestAsync("fireasy").Result;

            Assert.AreEqual("hello fireasy", str);
        }
Example #7
0
        public void TestIgnoreExceptionHasReturnValue()
        {
            var proxy = AspectFactory.BuildProxy <AspectTester>();

            var result = proxy.IgnoreExceptionHasReturnValue();

            Assert.AreEqual(99, result);
        }
Example #8
0
        public void TestWithOutParameters()
        {
            var proxy = AspectFactory.BuildProxy <AspectTester>();

            var      age = 19;
            DateTime birthday;
            object   any = null;

            proxy.WithOutParameters("fireasy", ref age, out birthday, ref any);

            Assert.AreEqual(age, 21);
            Assert.AreEqual(birthday, DateTime.Parse("2009-2-2"));
            Assert.IsNotNull(any);
        }
        /// <summary>
        /// 创建指定类型的实例对象。
        /// </summary>
        /// <param name="type"></param>
        /// <param name="args"></param>
        /// <returns></returns>
        public static object New(this Type type, params object[] args)
        {
            Guard.ArgumentNull(type, nameof(type));

            //如果支持 Aop,则用Aop生成
            if (typeof(IAopSupport).IsAssignableFrom(type) && !typeof(IAopImplement).IsAssignableFrom(type))
            {
                return(AspectFactory.BuildProxy(type, args));
            }

            if (type.IsInterface || type.IsAbstract)
            {
                type = type.BuildImplementType();
            }

            return(InternalNew(type, args));
        }
Example #10
0
        public void TestWithOutParametersComplex()
        {
            var proxy = AspectFactory.BuildProxy <AspectTester>();

            int      age = 19, age1;
            string   sex = null, sex1;
            DateTime date = DateTime.Now, date1;
            decimal? money = 0, money1;
            object   any = null, any1;

            proxy.WithOutParametersComplex("fireasy", ref age, out age1, ref sex, out sex1, ref date, out date1, ref money, out money1, ref any, out any1);

            Assert.AreEqual(age1, 21);
            Assert.AreEqual(sex1, "男");
            Assert.AreEqual(date1, DateTime.Parse("2009-1-1"));
            Assert.AreEqual(money1, 334.4m);
            Assert.IsNotNull(any1);
        }
Example #11
0
        public void TestGenericCall()
        {
            var proxy = AspectFactory.BuildProxy <AspectTester>();

            proxy.GenericCall("fireasy", 22);
        }
Example #12
0
        public void TestPrintParameters()
        {
            var proxy = AspectFactory.BuildProxy <AspectTester>();

            proxy.PrintParameters("fireasy", 22, null);
        }
Example #13
0
        public void TestSampleCallByParameter()
        {
            var proxy = AspectFactory.BuildProxy <AspectTester>("fireasy");

            proxy.SampleCall();
        }
Example #14
0
        public void TestThrowException()
        {
            var proxy = AspectFactory.BuildProxy <AspectTester>();

            proxy.ThrowException();
        }
Example #15
0
        public void TestSampleCall()
        {
            var proxy = AspectFactory.BuildProxy <AspectTester>();

            proxy.SampleCall();
        }
Example #16
0
        public void TestMultiCall()
        {
            var proxy = AspectFactory.BuildProxy <AspectTester>();

            proxy.MultiCall("fireasy");
        }
Example #17
0
        public void TestContextTarget()
        {
            var proxy = AspectFactory.BuildProxy <AspectTester>();

            proxy.ContextTarget();
        }
Example #18
0
        public void TestWithCustomInterceptAttribute()
        {
            var proxy = AspectFactory.BuildProxy <AspectTester>();

            proxy.WithCustomInterceptAttribute();
        }
Example #19
0
        public void WithParametersTest()
        {
            var proxy = AspectFactory.BuildProxy <AspectTester>();

            proxy.WithParameters("fireasy", 22, null);
        }