Esempio n. 1
0
 public AopTests()
 {
     ConfigurationManager.Instance.UseAutofac();
     IocContainer.Instance.OnServiceTypeRegistering += (sender, e) =>
     {
         if (e.ServiceType == typeof(IUser))
         {
             e.SetNewImplementationType(DynamicProxyFactory.CreateProxyType(e.ServiceType
                                                                            , e.ImplementationType
                                                                            , new Type[] {
                 typeof(UnitOfWorkInterceptor)
                 , typeof(PerformanceCounterInterceptor)
             }).ProxyType);
         }
     };
     IocContainer.Instance.OnServiceInstanceRegistering += (sender, e) =>
     {
         if (e.ServiceType == typeof(IUser))
         {
             e.SetNewInstance(DynamicProxyFactory.CreateProxy(e.ServiceType
                                                              , e.Instance
                                                              , new Type[] {
                 typeof(UnitOfWorkInterceptor)
                 , typeof(PerformanceCounterInterceptor)
             }));
         }
     };
     IocContainer.RegisterByAssembly(typeof(AopTests).GetTypeInfo().Assembly);
 }
Esempio n. 2
0
        public void Test1()
        {
            var obj1 = DynamicProxyFactory.CreateProxy <IUser>(new Saller(), null);

            obj1.property2 = -9;
            Assert.Equal(-9, obj1.property2);
            obj1.Eat(new Rice());

            var obj2 = DynamicProxyFactory.CreateProxyType(typeof(IUser), typeof(Supplier), null).ProxyType.GetConstructor(Type.EmptyTypes).Invoke(null);

            var resolver = IocContainer.Instance.Resolve <IIocResolver>();
            var user1    = resolver.Resolve <IUser>();

            var val1 = user1.method2();
            var val2 = user1.property1;

            user1.property2 = -9;
            Assert.Equal(-9, user1.property2);
            user1.Eat(new Rice());
        }