Mặc dù chủ đề đã được thảo luận ở đây trước đây, nhưng các giải pháp được đề xuất dường như không hoạt động ..CA2000: đối tượng không được xử lý dọc theo tất cả các đường dẫn ngoại lệ
Tôi có một phương pháp bấm-gọi-gọi trong ứng dụng biểu mẫu của tôi, cho thấy một hộp thoại thư mục chọn:
private void ButtonSelectReporterFolderClick(object sender, EventArgs e)
{
using (var dialog = new FolderBrowserDialog()) // causes warning
{
if (dialog.ShowDialog() == DialogResult.OK)
{
this.boxReporterFolderPath.Text = dialog.SelectedPath;
}
}
}
này tạo ra một cảnh báo:
CA2000: Microsoft.Reliability : In method 'MainWindow.ButtonSelectReporterFolderClick(object, EventArgs)', object '<>g__initLocal' is not disposed along all exception paths. Call System.IDisposable.Dispose on object '<>g__initLocal' before all references to it are out of scope.
tôi cũng đã cố gắng sử dụng một try
- finally
chặn hoặc thậm chí là hộp thoại gọi. Không có bất kỳ khối nào, tất cả đều không có sẵn - cảnh báo vẫn còn, luôn ở dòng khởi tạo.
Rất tiếc, nhưng tôi không thể tạo lại cảnh báo CA2000 cho mã trên. Bạn có chắc chắn nó không phải là do cái gì khác? –
Không, tôi ước .. bạn đã chạy nó trong một cửa sổ ứng dụng mẫu thích hợp gọi lại? – Efrain
Tôi không thấy vi phạm CA2000 trong phương thức ngay cả khi nó có dây dưới dạng nút Nhấn vào trình xử lý sự kiện trong biểu mẫu Windows vani trong một biểu mẫu Windows thực thi vani. Bạn có thấy vi phạm nếu bạn thêm mã "repro" tối thiểu vào ứng dụng Windows Forms mới không? –