私は非常に大規模なプロジェクトを持っており、可能な限りクリーンで整頓された状態に保つようにしています。Visual Studioでコードアナライザーを実行すると、信頼性エラーが発生し、非常に煩わしいと感じます。私は本当にそれを回避する方法を学びたいです。これが私がしていることの簡単な例です。
これが警告です。
警告1CA2000:Microsoft.Reliability:メソッド'MyExampleClassForStackOverflow.AddFeed(string)'で、オブジェクト' new FeedClassExamle()'へのすべての参照がスコープ外になる前に、System.IDisposable.Disposeを呼び出します。
これが私のサンプルコードです:
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())
{
}
任意の提案を歓迎します。