0
using (var web = SPContext.Current.Site.RootWeb)
{
    //Some code
}

SPDisposeCheck ツールは、このオブジェクトを破棄しないように指示していますが、これはSP オブジェクトを破棄する必要がある場所の典型的な例だと思いました!?

SPDisposeCheck からの出力:

注: このオブジェクトに対して Dispose を呼び出さないでください。最初の割り当て: web := Microsoft.SharePoint.SPContext.get_Current().{Microsoft.SharePoint.SPContext}get_Site().{Microsoft.SharePoint.SPSite}get_RootWeb()

4

2 に答える 2

-1

それは本当に正しいですか?SPSite.RootWeb のコードを見ると、次のようになっています。

public SPWeb RootWeb
{
    get
    {
       if (this.m_rootWeb == null)
       {
          this.m_rootWeb = this.OpenWeb(this.ServerRelativeUrl);
          this.m_rootWebCreated = true;
       }
       return this.m_rootWeb;
    }
}

それは実際に OpenWeb を実行するので、破棄する必要があります。それとも私が間違っていますか?

于 2012-10-13T08:40:24.983 に答える