Exemplo n.º 1
0
        public static ConfigAccessor CreateConfig
            (string configFileName, string relativeDirPath, Encoding encoding, ConfigAccess access, string section)
        {
            var configPath = Path
                             .Combine(BaseDirectory, relativeDirPath, CONFIG_NAME_TEMPLATE.Format(configFileName as object));
            var config = _openedFiles.SingleOrDefault(c => c.FilePath == configPath);

            if (config == null)
            {
                FileStream configFile = IOUtils.TryCreateFileIfNotExistOrOpenOrNull(configPath);
                if (configFile == null)
                {
                    throw new Exception("Не удается получить доступ к файлу.");
                }
                else
                {
                    config = new ConfigStorageProxy(configFile);
                    _openedFiles.Add(config);
                }
            }
            var stream = config.GetNewStream(access, section);

            return(new ConfigAccessor(
                       new ConfigReaderWriter(stream, encoding, section),
                       new ConfigSourceInfo(true, configPath)));
        }
Exemplo n.º 2
0
        public static ConfigAccessor CreateConfig(Stream configStream, string section, Encoding encoding)
        {
            var config = new ConfigStorageProxy(configStream);

            _openedFiles.Add(config);

            var stream = config.GetNewStream(DEFAULT_CONFIG_ACCESS, section);

            return(new ConfigAccessor(
                       new ConfigReaderWriter(stream, encoding, section),
                       new ConfigSourceInfo(false, null)));
        }