У меня есть клиент 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 я пытался создать «класс конфигурации», но не мог легко понять, как его использовать или применить к этому сценарию.