CA1001 报告了扩展 class 中的静态方法
CA1001 reported on static method in extension class
我有一个扩展方法 class 生成 CA1001
警告:"Warning CA1001 Implement IDisposable on 'ImageSourceExtensions.d__8' because it creates members of the following IDisposable types: 'HttpClient'."
方法:
private static async Task<Stream> GetByteArrayAsync(Uri uri, CancellationToken token) {
using (HttpClient httpClient = new HttpClient()) {
HttpResponseMessage response = await httpClient.GetAsync(uri, token);
return await response.Content.ReadAsStreamAsync();
}
}
我有几个类似扩展方法的 CA1001 警告实例。我能想到的选项:
1) 使用 [SuppressMessage] 忽略它们
2) 将一次性物品保存在实现 IDisposable 的 class 实例中,并将它们传递给扩展
压制他们感觉对我来说是正确的想法,但任何相反的意见都会受到赞赏。
无论如何,您不应该处理 HttpClient
,将其设为静态引用并重新使用它,这就是它的设计目的。不断地重新创建它们 can lead to performance issues。如果你 HttpClient
得到 CA1001,你绝对应该抑制那个。
我有一个扩展方法 class 生成 CA1001
警告:"Warning CA1001 Implement IDisposable on 'ImageSourceExtensions.d__8' because it creates members of the following IDisposable types: 'HttpClient'."
方法:
private static async Task<Stream> GetByteArrayAsync(Uri uri, CancellationToken token) {
using (HttpClient httpClient = new HttpClient()) {
HttpResponseMessage response = await httpClient.GetAsync(uri, token);
return await response.Content.ReadAsStreamAsync();
}
}
我有几个类似扩展方法的 CA1001 警告实例。我能想到的选项:
1) 使用 [SuppressMessage] 忽略它们
2) 将一次性物品保存在实现 IDisposable 的 class 实例中,并将它们传递给扩展
压制他们感觉对我来说是正确的想法,但任何相反的意见都会受到赞赏。
无论如何,您不应该处理 HttpClient
,将其设为静态引用并重新使用它,这就是它的设计目的。不断地重新创建它们 can lead to performance issues。如果你 HttpClient
得到 CA1001,你绝对应该抑制那个。