我有一個非常大的項目,我儘量保持乾淨整潔。當我在Visual Studio中運行代碼分析器時,我得到一個可靠性錯誤,我覺得很煩人。我真的很想學習如何解決它。這是我正在做的一個簡單的例子。如何正確處理此代碼?
這裏是警告。
警告1 CA2000:Microsoft.Reliability:在方法 'MyExampleClassForStackOverflow.AddFeed(字符串)',所有的引用之前請對象System.IDisposable.Dispose '新FeedClassExamle()' 到它超出範圍。
這裏是我的示例代碼:
class MyExampleClassForStackOverflow : IDisposable
{
public ConcurrentDictionary<string, FeedClassExamle> Feeds { get; set; }
public void AddFeed(string id)
{
//The warning is coming from this code block.
//In the full code, the feed classes collects data on a specific
//interval and feeds them back using events.
//I have a bunch of them and they need to be accessible so I
//store them in dictionaries using keys to effeciently find them.
Feeds.TryAdd(id, new FeedClassExamle());
Feeds[id].Start();
}
public void Dispose()
{
foreach (var item in Feeds)
item.Value.Dispose();
}
}
class FeedClassExamle : IDisposable
{
public void Start()
{
}
public void Dispose()
{
}
}
爲了測試代碼,使用方法:
using (var example = new MyExampleClassForStackOverflow())
{
}
任何建議將受到歡迎。
好問題。我一直禁止這種警告在這種情況下......這將是很好的瞭解,如果有什麼解決辦法 – 6opuc