/// <summary> /// 构造函数 /// </summary> public ProxyGenerator(Func <Type, IAop> func) { this.assemblyDynamicBuilder = new AssemblyDynamicBuilder(); this.classProxy = new ClassProxy(this.assemblyDynamicBuilder, func); this.interfaceProxy = new InterfaceProxy(this.assemblyDynamicBuilder, func); this.AopFunc = func; this.IsDisposed = false; }
/// <summary> /// Dispose /// </summary> public void Dispose() { if (this.IsDisposed) { return; } this.IsDisposed = true; this.assemblyDynamicBuilder = null; this.m_classProxyDic.Clear(); this.m_classProxyDic = null; }
/// <summary> /// 释放资源 /// </summary> public void Dispose() { if (this.IsDisposed) { return; } this.IsDisposed = true; this.assemblyDynamicBuilder = null; this.AopFunc = null; this.classProxy.Dispose(); this.classProxy = null; this.interfaceProxy.Dispose(); this.interfaceProxy = null; }
/// <summary> /// ClassProxy /// </summary> /// <param name="assemblyDynamicBuilder"></param> public ClassProxy(AssemblyDynamicBuilder assemblyDynamicBuilder, Func <Type, IAop> func) { if (assemblyDynamicBuilder == null) { throw new ArgumentNullException("assemblyDynamicBuilder"); } this.assemblyDynamicBuilder = assemblyDynamicBuilder; #if NET20 this.m_classProxyDic = new Afx.Collections.SafeDictionary <Type, Type>(); #else this.m_classProxyDic = new System.Collections.Concurrent.ConcurrentDictionary <Type, Type>(); #endif this.AopFunc = func; this.IsDisposed = false; }