我有一个由NSwagStudio生成的API客户端。我的一个端点的构造函数如下所示:
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个客户端都是作为单例注入依赖项的,所以有没有一种简单的方法来配置所有5个客户端的BaseUrl以供其使用?我知道我可以在所有5个客户端上提前设置BaseUrl,但我觉得必须有一种更简单的方法来实现这一点,而不是只复制意大利面。
谢谢!
编辑:在NSwagStudio中,我试图创建一个“配置类”,但是不能很容易地理解如何使用它或者将它应用于这个场景。
发布于 2019-05-04 04:11:43
您可以将serverHost设置为“。这样,url就是一个ctor参数。
https://stackoverflow.com/questions/55947115
复制相似问题