Ejemplo n.º 1
0
        public ProxyEntryBiz GetBizEntry(Type tBiz)
        {
            long             lKey = tBiz.Assembly.ManifestModule.MetadataToken;
            ProxyAssemblyBiz pxa  = null;

            //Controlla presenza
            if (!this.mCacheBiz.TryGetValue(lKey, out pxa))
            {
                //Lock Scrittura
                lock (this.mCacheBiz.WriteLock)
                {
                    //Ricontrolla
                    if (!this.mCacheBiz.TryGetValue(lKey, out pxa))
                    {
                        //Invia evento
                        pxa = new ProxyAssemblyBiz()
                        {
                            Key            = lKey,
                            SrcAss         = tBiz.Assembly,
                            TypeBizEntries = new ProxyEntryBizDic(30)
                        };

                        //Avvia evento
                        ProxyTypeBuilder.BuildBizProxyFromAssembly(pxa);

                        //Rigenera nuovo elenco Proxy
                        var newCache = new ProxyAssemblyBizDiz(this.mCacheBiz);
                        newCache.Add(lKey, pxa);

                        //Assegnazione
                        this.mCacheBiz = newCache;
                    }
                }
            }

            //Ritorna entry
            return(pxa.TypeBizEntries[tBiz.TypeHandle.Value.ToInt64()]);
        }
Ejemplo n.º 2
0
 public ProxyAssemblyBizDiz(ProxyAssemblyBizDiz other)
     : base(other)
 {
 }