【问题标题】:.net core 2.1 IniConfigurationProvider can' read ini-values.net core 2.1 IniConfigurationProvider 可以'读取 ini-values
【发布时间】:2019-02-10 21:06:26
【问题描述】:

我尝试使用 IniConfigurationProvider 在 Linux 中读取 Ini-File。

string iniFile = "Path\db_replicator.cfg";
if (!File.Exists(iniFile))
    throw new Exception();
IniConfigurationSource iniConfigurationSource = new IniConfigurationSource();
iniConfigurationSource.Path = iniFile;
iniConfigurationSource.Optional = true;
var iniConfigurationProvider = new IniConfigurationProvider(iniConfigurationSource);
iniConfigurationProvider.Load();
string retTestValue = string.Empty;
bool retBooleanTestValue = iniConfigurationProvider.TryGet("Sync:DatabaseDirectory", out retTestValue);

ini文件:

[Sync]
DatabaseDirectory=dataDirectory

字符串retTestValueTryGet("Sync:DatabaseDirectory) 调用之后是null

我找到了一个向我展示 Get-Methode 的示例。但我在新的 .NetCore 2.1 版本中找不到;在那里我只找到TryGet

【问题讨论】:

    标签: linux ini .net-core-2.1


    【解决方案1】:

    我偶然发现了这个问题,试图让 .NET Core AWS SDK 从 AWS CLI 使用的 INI 文件中读取访问密钥 ID 和秘密访问密钥。经过一番搜索,我发现您还需要为IniConfigurationSource指定FileProvider,否则无法确定INI文件在哪里,像这样:

            string userProfilePath = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);
            IniConfigurationSource iniConfig = new IniConfigurationSource { Path = ".aws\\credentials", Optional = true, FileProvider = new PhysicalFileProvider(userProfilePath) };
            IniConfigurationProvider iniProvider = new IniConfigurationProvider(iniConfig);
            iniProvider.Load();
            string accessKey;
            if (iniProvider.TryGet("default:aws_access_key_id", out accessKey))
            {
                string secretKey;
                if (iniProvider.TryGet("default:aws_secret_access_key", out secretKey))
                {
                    return new BasicAWSCredentials(accessKey, secretKey);
                }
            }
            throw new ApplicationException("Unable to find AWS access key id and secret access key in the user's profile .aws\\credentials file!");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-25
      • 2019-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-03
      • 2019-03-16
      相关资源
      最近更新 更多