Size: a a a

2020 March 10

B

Bretbas in pro.net
Anatoly
Add**** вызывается в Startup.cs один раз
ну, и там передаешь его
источник

A

Anatoly in pro.net
да, конечно.
источник

IC

Ilya Chernoudov in pro.net
Bretbas
Как в стиле Microsoft делается такая тема. Допустим у меня есть SmsSender, который подключается к системе с помощью extensions:
IServiceCollection AddSmsRuSender(this IServiceCollection services, Action<SmsRuOptions> configure);

SmsRuOptions <— берутся из appsettings.json. Я просто делаю вот так:
var smsRuOptions = Configuration.Get<SmsRuOptions>("SmsRuConfig");
services.AddSmsRuSender(options => options = smsRuOptions);

Выглядит по убожески, не так ли?
Как в стиле microsoft
это вообще работает?
источник

B

Bretbas in pro.net
Ilya Chernoudov
это вообще работает?
да, конечно, почему нет
источник

IC

Ilya Chernoudov in pro.net
Bretbas
да, конечно, почему нет
потому что options нужно менять
источник

IC

Ilya Chernoudov in pro.net
а не сетать заново
источник

IC

Ilya Chernoudov in pro.net
.AddSmsRuSender(options => options = smsRuOptions);
источник

B

Bretbas in pro.net
Anatoly
да, конечно.
но тогда, тот кто разрабатывает метод extensions должен как то клиенскому коду, сообщить, что должно быть в appcsettings секциях, чтобы это все заработало
источник

IC

Ilya Chernoudov in pro.net
вот этот код не должен работать
источник

IC

Ilya Chernoudov in pro.net
хотя я хз, что ты делаешь с этим делегатом
источник

B

Bretbas in pro.net
Ilya Chernoudov
вот этот код не должен работать
с чего бы это?
источник

A

Anatoly in pro.net
Bretbas
но тогда, тот кто разрабатывает метод extensions должен как то клиенскому коду, сообщить, что должно быть в appcsettings секциях, чтобы это все заработало
да, он сообщает в документации. в нашей команде, путём добавления секций в эталонный конфиг
источник

IC

Ilya Chernoudov in pro.net
щас уточню)
источник

B

Bretbas in pro.net
это Action<SmsRuOptions>
источник

B

Bretbas in pro.net
Anatoly
да, он сообщает в документации. в нашей команде, путём добавления секций в эталонный конфиг
правильно ли это, ты считаешь?
источник

A

Anatoly in pro.net
Bretbas
правильно ли это, ты считаешь?
а почему нет?
источник

IC

Ilya Chernoudov in pro.net
Bretbas
это Action<SmsRuOptions>
вот именно, это Action, ты должен сконфигурировать переданный инстанс
источник

B

Bretbas in pro.net
Anatoly
а почему нет?
ну потому что надо документировать это
источник

A

Anatoly in pro.net
Bretbas
ну потому что надо документировать это
оужас
источник

IC

Ilya Chernoudov in pro.net
вообще норм путь это вот так options=> Configuration.Bind(options)
источник