Example #1
0
        /// <summary>
        /// 包装传入对象的实例,使得它具有“方面”的功能
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="target"></param>
        /// <returns></returns>
        public T Create <T>(object target) where T : class
        {
            Type interfaceType = typeof(T);
            T    obj           = (T)DecoratorInjector.Create(target, interfaceType);

            return(obj);
        }
Example #2
0
        /// <summary>
        /// 通过IOC的配置信息,创建AOP对象的实例
        /// </summary>
        /// <typeparam name="T">返回值类型,通常为AOP对象的接口</typeparam>
        /// <returns>AOP对象的实例</returns>
        public T Create <T>() where T : class
        {
            Type interfaceType = typeof(T);
            T    obj           = null;

            //使用预先生成的程序集没有太大价值,下面代码被注释
            //-------------------------------------------------------------------------------------------
            //先看类型T对应的程序集有没有生成,如果生成,就采用生成好的
            //try
            //{
            //    obj = Unity.Instance.GetInstance<T>("AOP", interfaceType.FullName );
            //}
            //catch(Exception ex)
            //{
            //    obj = (T)DecoratorInjector.Create(CreateInstance(interfaceType.FullName ), interfaceType);
            //}
            obj = (T)DecoratorInjector.Create(CreateInstance(interfaceType.FullName), interfaceType);
            return(obj);
        }