У меня есть клиент API, сгенерированный NSwagStudio. Мой конструктор для одной из моих конечных точек выглядит так:
private string _baseUrl = "http://localhost:11957";
private System.Net.Http.HttpClient _httpClient;
private System.Lazy<Newtonsoft.Json.JsonSerializerSettings> _settings;
public AccountClient(System.Net.Http.HttpClient httpClient)
{
_httpClient = httpClient;
_settings = new System.Lazy<Newtonsoft.Json.JsonSerializerSettings>(() =>
{
var settings = new Newtonsoft.Json.JsonSerializerSettings();
UpdateJsonSerializerSettings(settings);
return settings;
});
}
public string BaseUrl
{
get { return _baseUrl; }
set { _baseUrl = value; }
}
Около 5 из этих клиентов созданы. Очевидно, что для производственных сред я хочу, чтобы моя конечная точка API была другой. На данный момент я использую подсказки компилятора (#if debug) для установки локальных или производственных конечных точек.
Поскольку все 5 из этих клиентов внедряют зависимость как одиночную, есть ли простой способ настроить BaseUrl для использования всеми 5 этими клиентами? Я знаю, что могу просто установить BaseUrl для всех 5 клиентов, но я чувствую, что должен быть более простой способ сделать это, а затем просто скопировать макароны.
Спасибо!
РЕДАКТИРОВАТЬ: В NSwagStudio я пытался создать «класс конфигурации», но не мог легко понять, как его использовать или применить к этому сценарию.