Как читать AWS RegionEndpoint из настроек приложения. json? - PullRequest
1 голос
/ 12 февраля 2020

Blazor Server. У меня есть модель

public class S3SvcConfiguration: IS3SvcConfiguration
{
    public string AccessKey { get; set; }
    public string SecretKey { get; set; }
    public RegionEndpoint RegionPoint { get; set; }
    public string S3Url { get; set; }
}

Но когда я читаю настройки приложения. json, RegionEndpoint имеет значение null: RegionEndpoint имеет тип AWS.

"S3SvcConfiguration": {
    "RegionPoint": "us-east-2",
    "S3Url": "http://myhost:9000",
    "AccessKey": "qwerty",
    "SecretKey": "qwerty123"
  },

Я прочитал

public void ConfigureServices(IServiceCollection services)
{
    services.AddRazorPages();
    services.AddServerSideBlazor();
    services.AddSingleton<IS3SvcConfiguration>(Configuration.GetSection("S3SvcConfiguration").Get<S3SvcConfiguration>());
    services.AddScoped <IS3FileSvc,S3FileSvc> ();
}

Заполнены значения ALl, но RegionPoint равен нулю. Как читать настройки приложения. json Конфигурация для заполнения значения RegionPoint?

1 Ответ

2 голосов
/ 12 февраля 2020

RegionEndpoint является частью их пользовательской конфигурации, но вы пытаетесь заполнить ее из простой строки, когда у них был бы код для обработки этого.

Попробуйте изменить подход, чтобы вручную преобразовать эту строку в желаемое значение

public void ConfigureServices(IServiceCollection services) {
    services.AddRazorPages();
    services.AddServerSideBlazor();

    S3SvcConfiguration config = Configuration.GetSection("S3SvcConfiguration").Get<S3SvcConfiguration>();
    string region = Configuration.GetValue<string>("S3SvcConfiguration:RegionPoint");
    config.RegionPoint = RegionEndpoint.GetBySystemName(region);
    services.AddSingleton<IS3SvcConfiguration>(config);

    services.AddScoped <IS3FileSvc,S3FileSvc> ();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...