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; }