private void loadAllCtors()
        {
            if (!_allCtor)
            {
                ConstructorInfo[] pi = CU.ExcelRegisteredCtors(ItemType);
                if (pi.GetLength(0) != _ctor.Count)
                {
                    foreach (ConstructorInfo m in pi)
                    {
                        CacheItemCtor c = new CacheItemCtor(m);
                        if (!_ctor.ContainsKey(c.ExcelName))
                            _ctor.Add(c.ExcelName, c);
                    }
                }

                _allCtor = true;
            }
        }
        private CacheItemCtor extractCtor(string name)
        {
            CacheItemCtor c = null;
            if (!_ctor.ContainsKey(name))
            {
                IEnumerable<ConstructorInfo> ci = CU.ExcelRegisteredCtors(ItemType)
                    .Where(w => new CacheItemCtor(w).ExcelName == name);

                if (ci.Count() > 0)
                {
                    c = new CacheItemCtor(ci.First());
                    _ctor.Add(name, c);
                }
            }
            else
                c = _ctor[name];

            return c;
        }