Пример #1
0
        /// <summary>
        /// Loads the ini file and stores all settings within the global PlatformSettings instance.
        /// </summary>
        private static void LoadIniFile()
        {
            string procName = System.Diagnostics.Process.GetCurrentProcess().ProcessName;
            string iniName  = $"{procName}.ini".ToLowerInvariant();

            string        currentDirectoryPath = Directory.GetCurrentDirectory();
            DirectoryInfo directoryInfo        = new DirectoryInfo(currentDirectoryPath);
            FileInfo      iniFile = directoryInfo.GetFiles(iniName).FirstOrDefault();

            if (iniFile == null)
            {
                throw new InvalidOperationException(string.Format("No ini file '{1}' could be found within the current working dir '{0}'", currentDirectoryPath, iniName));
            }

            IniDocumentParser  iniDocumentParser = new IniDocumentParser(iniFile);
            IPlainTextDocument document          = iniDocumentParser.Parse();
            PlatformSettings   platformSettings  = PlatformSettings.Instance;

            using (IEnumerator <KeyValuePair <string, string[]> > itr = document.GetEnumerator()) {
                while (itr.MoveNext())
                {
                    KeyValuePair <string, string[]> pair = itr.Current;
                    string   key    = pair.Key;
                    string[] values = pair.Value;
                    string   value  = (values.Length == 0 ? string.Empty : values[0]);
                    platformSettings.Add(key, value);

                    // Make settings for all components available
                    Environment.SetEnvironmentVariable($"motoi:{key}", value, EnvironmentVariableTarget.Process);
                }
            }
        }
Пример #2
0
 /// <inheritdoc />
 public void Dispose()
 {
     _settingsMap.Clear();
     _instance = null;
 }