Пример #1
0
        /// <summary>
        /// 创建对象的代理
        /// </summary>
        /// <param name="obj">要创建代理的对象</param>
        /// <returns>创建完成的代理</returns>
        public static object CreateProxy(AOPCompositionContainer container, object obj)
        {
            var attrs = obj.GetType().GetCustomAttributes(typeof(IInterceptor), true);

            if (attrs == null || attrs.Length == 0)
            {
                return(obj);
            }

            var interceptors = attrs.Select(x => { container.ComposeParts(x); return((IInterceptor)x); })
                               .OrderBy(x => x.Order)
                               .ToArray();

            return(CreateProxy(obj, interceptors));
        }
Пример #2
0
        static ServiceLocator()
        {
            var catalog = new AssemblyCatalog(typeof(ServiceLocator).Assembly);

            _container = new AOPCompositionContainer(catalog);
        }
        public void Initialize()
        {
            var catalog = new AssemblyCatalog(this.GetType().Assembly);

            _container = new AOPCompositionContainer(catalog);
        }