У меня есть основное приложение .net, которое называется AppOne . В его appsettings.json я определяю, какие API он должен вызывать. Например:
"ApiSettings": {
"UrlToCall": "http://test",
}
Затем есть моя промежуточная и общая библиотека проектов, которая называется InfraApp , которая сама выполняет вызов к API. Там может быть второе приложение под названием AppTwo , где URL-адрес отличается. И AppOne и AppTwo ссылаются на InfraApp , так как логика является общей, и вызывают код там, чтобы выполнить фактический вызов. Однако настройки (которые определяют, какой URL вызывать) относятся к самим API и поэтому не могут быть указаны в InfraApp .
Давайте пока рассмотрим только AppOne . ,Такие настройки регистрируются через шаблон параметров (https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/options?view=aspnetcore-3.0) в файле startup.cs:
services.AddOptions();
var apiSettings = Configuration.GetSection("ApiSettings");
services.Configure<ApiSettings>(apiSettings);
, и у меня есть мой класс ApiSettings:
public class ApiSettings
{
public string UrlToCall { get; set; }
}
, что является правильнымспособ передачи таких ApiSettings в InfraApp ? InfraApp ничего не знает о ApiSettings, поскольку это определено в AppOne . Должен ли я определить ApiSettings класса в InfraApp ? ИМХО звучит неправильно, потому что это что-то особенное в API AppOne , но, возможно, я не так думаю. Спасибо!