c# - 在中间件中,为什么这个值只设置一次?
问题描述
所以我正在测试一些中间件,发现是什么导致了我的问题。这是一个非常简单的解释。
例如,我有这个
public class AuthMiddleware
{
private HttpClient _client;
//have constructor as standard so removed to keep example short as not important
public async Task Invoke(IHttpClientFactory clientFactory)
{
_client = GetClientAsync();
await _next.Invoke(context);
}
private async Task<HttpClient> GetClientAsync(IHttpClientFactory clientFactory)
{
//NOTE: I would expect the _client to be null on every call to this method
//However once it is created it does not get created again.
if(_client == null)
{
_client = clientFactory.CreateClient("TestClient");
}
return _client;
}
}
至于我的注释_client
是实例变量而不是静态的,那么为什么它会在每个请求上保存一个实例而不是 null 并按预期重新创建?
解决方案
推荐阅读
- arrays - Perl - 从存储在哈希引用中的数组中获取数组值的问题
- c++ - 获取两个不同模板的产品类型
- php - 如何在php中使用htaccess重定向到特定的文件夹/页面
- animation - Update normals of animated skinned mesh in three.js?
- python - TypeError:写入文件需要一个整数(获取类型 str)
- tensorflow - How to fix "Invalid argument: Key: feature. Can't parse serialized Example."
- r - 我从 Excel 导入数据。但我不知道如何使用感测器包使用数据
- c# - Xamarin Forms: Remote Images don't load on Android
- spring-boot - Monitoring spring boot cache metrics with Prometheus
- java - 根据列表内容调用 Java 类