/// <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)); }
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); }