Не могу получить список объектов из настроек приложения - PullRequest
0 голосов
/ 15 января 2020

У меня есть настройки приложения, которые выглядят так:

"Tenants": [
  {
    "Id": "00000000-0000-0000-0000-00000000000",
    "ConnectionString": "dbstring"
  },
  {
    "Id": "00000000-0000-0000-0000-00000000001",
    "ConnectionString": "dbstring"
  }
]

и объект, который выглядит так:

public class TenantSecrets
{
    public string ConnectionString { get; set; }
    public Guid Id { get; set; }
}

public class Tenants : List<TenantSecrets> { }

Когда я пытаюсь либо настроить их, либо связать их так :

services.Configure<Tenants>(Configuration.GetSection("Tenants"));

var tenants = new Tenants();
Configuration.Bind("Tenants", tenants);

Список всегда пуст, кто-нибудь знает, почему или как я могу его отладить? Когда я отлаживаю, я вижу список в программе чтения настроек appsettings, но объект никогда не отображается.

Ответы [ 2 ]

0 голосов
/ 16 января 2020

ок, люди, я понял это, оказалось, что пустой guid, который я использовал для идентификатора, был на 0 меньше, чем guid, и теперь я узнал, что сопоставление конфигурации с poco отображается молча, поэтому для всех остальных возникают проблемы пожалуйста, проверьте, что ваши данные соответствуют типам данных

0 голосов
/ 15 января 2020

Редактировать: Хорошо, вы заметили эту ошибку, случается, она работает отлично. Я не хочу писать бесполезный ответ, поэтому вот версия, использующая шаблон Опции .

Сконфигурируйте класс Tenants в файле Startup.cs (метод ConfigureServices )

services.Configure<Tenants>(Configuration.GetSection("Tenants"));

Затем вставьте службу IOptions<Tenants> в конструктор контроллера.

private readonly Tenants _tenants;

public HomeController(IOptions<Tenants> tenantOptions)
{
    _tenants = tenantOptions.Value;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...