示例#1
0
        /// <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;
        }
示例#2
0
 /// <summary>
 /// Dispose
 /// </summary>
 public void Dispose()
 {
     if (this.IsDisposed)
     {
         return;
     }
     this.IsDisposed             = true;
     this.assemblyDynamicBuilder = null;
     this.m_classProxyDic.Clear();
     this.m_classProxyDic = null;
 }
示例#3
0
 /// <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;
 }
示例#4
0
        /// <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;
        }