private void loadAllProps()
        {
            if (!_allProp)
            {
                PropertyInfo[] pi = CU.ExcelRegisteredProperties(ItemType);
                if (pi.GetLength(0) != _prop.Count)
                {
                    foreach (PropertyInfo m in pi)
                    {
                        CacheItemProperty c = new CacheItemProperty(m);
                        if (!_prop.ContainsKey(c.ExcelName))
                            _prop.Add(c.ExcelName, c);
                    }
                }

                _allProp = true;
            }
        }
        private CacheItemProperty extractCIP(string name)
        {
            CacheItemProperty p = null;
            if (!_prop.ContainsKey(name))
            {
                IEnumerable<PropertyInfo> pi = CU.ExcelRegisteredProperties(ItemType)
                    .Where(w => new CacheItemProperty(w).ExcelName == name);

                if (pi.Count() > 0)
                {
                    p = new CacheItemProperty(pi.First());
                    _prop.Add(name, p);
                }
            }
            else
                p = _prop[name];

            return p;
        }