public IConfig Get(Type implementType) { var descriptor = _configs.FirstOrDefault(m => m.ImplementType == implementType); if (descriptor == null) { throw new NotImplementedException("没有找到配置类型"); } return(Get(descriptor)); }
private ConfigDescriptor GetDescriptor(Func <ConfigDescriptor, bool> predicate) { var descriptor = ConfigWidthInstanceCollection.FirstOrDefault(predicate); if (descriptor == null) { descriptor = _configs.Where(predicate).Select(m => new ConfigDescriptor { Type = m.Type, Code = m.Code, ImplementType = m.ImplementType, ChangeEvents = m.ChangeEvents }).FirstOrDefault(); ConfigWidthInstanceCollection.Add(descriptor); } if (descriptor == null) { throw new NullReferenceException("指定类型的配置实例不存在"); } return(descriptor); }