Size: a a a

2021 January 20

DP

Denis Petukhov in pro.net
Да и цель не понятна все еще
источник

DP

Denis Petukhov in pro.net
Вот есть конфигурация. Есть некоторая логика которой нужны значения из конфигурации
источник

DP

Denis Petukhov in pro.net
Далее не понятно
источник

DP

Denis Petukhov in pro.net
Почему словарь
источник

DP

Denis Petukhov in pro.net
Почему IBar
источник

AB

Alex Bespalov in pro.net
Похоже на один из двух кейсов:
1. В json лежит “foo”:{}, “bar”:{} и на уровне конфигурации указывается, что IOptions<Foo> берутся из “foo” и Bar из “bar”. Это делается средствами самого configuration. И в коде просто инъектится IOptions<Foo> и всё само отработает как надо.
2. Есть какая то стратегия типа в зависимости от типа пользователя выбирать разные настройки из конфига и в конфиге написано: “users: { “foo”: {}, “bar”: {} } и надо в коде делать что то типа var userConfiguration = _configurations[user.Type];
Второе штоле хочет автор?
источник

DP

Denis Petukhov in pro.net
Alex Bespalov
Похоже на один из двух кейсов:
1. В json лежит “foo”:{}, “bar”:{} и на уровне конфигурации указывается, что IOptions<Foo> берутся из “foo” и Bar из “bar”. Это делается средствами самого configuration. И в коде просто инъектится IOptions<Foo> и всё само отработает как надо.
2. Есть какая то стратегия типа в зависимости от типа пользователя выбирать разные настройки из конфига и в конфиге написано: “users: { “foo”: {}, “bar”: {} } и надо в коде делать что то типа var userConfiguration = _configurations[user.Type];
Второе штоле хочет автор?
Во втором случае и так у нас есть словарь в жисоне внезапно. Зачем нужен второй - загадка
источник

LD

Lyserg Ditel in pro.net
Alex Bespalov
Похоже на один из двух кейсов:
1. В json лежит “foo”:{}, “bar”:{} и на уровне конфигурации указывается, что IOptions<Foo> берутся из “foo” и Bar из “bar”. Это делается средствами самого configuration. И в коде просто инъектится IOptions<Foo> и всё само отработает как надо.
2. Есть какая то стратегия типа в зависимости от типа пользователя выбирать разные настройки из конфига и в конфиге написано: “users: { “foo”: {}, “bar”: {} } и надо в коде делать что то типа var userConfiguration = _configurations[user.Type];
Второе штоле хочет автор?
Да, у меня первый вариант, foo - это класс, с атрибутом пути до foo в appsettings.json, который я регистрирую через IConfigurationBuilder, забыл указать это, виноват, но https://t.me/pro_net/307993, в принципе я придумал решение
источник

LD

Lyserg Ditel in pro.net
Правда нет, я хочу словарик один раз создать, а как я IConfiguration в статик тип заинжектю, уф
источник

AB

Alex Bespalov in pro.net
Denis Petukhov
Во втором случае и так у нас есть словарь в жисоне внезапно. Зачем нужен второй - загадка
Э, ну ты забиндил где то на уровне конфигурации что у тебя есть условно UserManagerConfiguration { Dictionary<string, UseTypeRoleConfiguration> RoleConfiguration } и оно работает, т.к. может { userManagerConfiguration: { RoleConfiguration: { user: {}, admin: {} } } } правильно биндить и всё. А что есть словарь в джсоне не очень понятно. В коде как это будет выглядеть? Будут ли танцы с необходимость что то на месте десериализовать или как?
источник

AB

Alex Bespalov in pro.net
Lyserg Ditel
Да, у меня первый вариант, foo - это класс, с атрибутом пути до foo в appsettings.json, который я регистрирую через IConfigurationBuilder, забыл указать это, виноват, но https://t.me/pro_net/307993, в принципе я придумал решение
Ну тогда рефлексией получаются типы с указанным кастомным атрибутом и в цикле биндятся по значению в этом атрибуте
источник

AB

Alex Bespalov in pro.net
Alex Bespalov
Э, ну ты забиндил где то на уровне конфигурации что у тебя есть условно UserManagerConfiguration { Dictionary<string, UseTypeRoleConfiguration> RoleConfiguration } и оно работает, т.к. может { userManagerConfiguration: { RoleConfiguration: { user: {}, admin: {} } } } правильно биндить и всё. А что есть словарь в джсоне не очень понятно. В коде как это будет выглядеть? Будут ли танцы с необходимость что то на месте десериализовать или как?
Но .net core всё равно емнип не биндит словарь из json (как объект превращая имя поля в ключ в словаре), т.к. у них там чтение из environment variables etc
источник

DP

Denis Petukhov in pro.net
Шота я так и не понял
источник

DP

Denis Petukhov in pro.net
Т.е. класс уже зареган в DI
источник

DP

Denis Petukhov in pro.net
Пользуйся не хочу
источник

DP

Denis Petukhov in pro.net
Зачем приседания то?
источник

AB

Alex Bespalov in pro.net
Патамушта можна)
источник

DP

Denis Petukhov in pro.net
Alex Bespalov
Но .net core всё равно емнип не биндит словарь из json (как объект превращая имя поля в ключ в словаре), т.к. у них там чтение из environment variables etc
Он биндит уж но не факт что будет по умолчанию делать это полиморфно. Чтение из переменных будет если добавить их как источник конфигурации .AddEnvironmentVariables() или типа того
источник

LD

Lyserg Ditel in pro.net
Denis Petukhov
Т.е. класс уже зареган в DI
Более чем, правда меня видимо уже расплавило, а как в статик типе использовать IConfiguration ?
источник

DP

Denis Petukhov in pro.net
Lyserg Ditel
Более чем, правда меня видимо уже расплавило, а как в статик типе использовать IConfiguration ?
Лучше спросить себя зачем а не как)
источник