Указание конечной точки API во время выполнения при использовании NSwagStudio - PullRequest
0 голосов
/ 02 мая 2019

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

1 Ответ

0 голосов
/ 03 мая 2019

Вы можете установить serverHost на «.», Чтобы URL был параметром ctor

...