【发布时间】:2018-07-24 04:11:09
【问题描述】:
我有一个扩展类的方法可以生成CA1001
警告:“警告 CA1001 在 'ImageSourceExtensions.d__8' 上实现 IDisposable,因为它会创建以下 IDisposable 类型的成员:'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) 将disposable保存在实现IDisposable的类实例中并将它们传递给扩展
对我来说,压制他们是正确的想法,但任何相反的意见都是值得赞赏的。
【问题讨论】:
-
不应该使用“this”关键字吗?
-
如果通过“扩展类”这应该是一个扩展方法,你错过了
this关键字。
标签: c# async-await code-analysis dotnet-httpclient