私はフォームをコントロールに変換するいくつかの静的メソッドを持っています(下記参照)。アナライザーは、「CA2000:Microsoft.Reliability:メソッド内で... '」と表明し、オブジェクト'フォーム 'がすべての例外パスに沿って配置されていないことを示します。System.IDisposable.Desposeをオブジェクト'フォーム '範囲外です。 "同様にtabPage
にフラグが立てられます。コード解析フォームの廃棄についての警告
注:Enterprise EditionとAnalyzerメニューがない人は、FxCopの出力によく似ています。
私は何をすべきかについてはっきりしていません。 new
が失敗すると、例外がスローされます。 Dispose
に電話する機会はどこですか?
class Foo
{
static public Form FormAsControl()
{
Form form = new Foo();
form.TopLevel = false;
form.FormBorderStyle = FormBorderStyle.None;
form.Dock = DockStyle.Fill;
form.Visible = true;
return form;
}
static public TabPage FormAsTabPage()
{
Form form = Foo.FormAsControl();
TabPage tabPage = new TabPage();
tabPage.Text = form.Text;
tabPage.Controls.Add(form);
return tabPage;
}
...
}
"[SuppressMessage(" Microsoft.Reliability "、" CA2000 ")]"チャームのように機能しました。どうもありがとうございました。 – jww