Ejemplo n.º 1
0
        public IConfig Get(Type implementType)
        {
            var descriptor = _configs.FirstOrDefault(m => m.ImplementType == implementType);

            if (descriptor == null)
            {
                throw new NotImplementedException("没有找到配置类型");
            }

            return(Get(descriptor));
        }
Ejemplo n.º 2
0
        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);
        }