Ошибка при запуске инструмента SPDisposeChecker - PullRequest
1 голос
/ 29 февраля 2012

Я получаю сообщение об ошибке «Одноразовый тип не удален Microsoft.SharePoint.SPWeb *** Это может быть ложным срабатыванием в зависимости от того, как был создан тип, или если он расположен вне текущей области».

Ниже приведен мой код:

 public static int AddtoList( string title)
    {
        int returnValue = int.MinValue;
        SPUser sysAcount = SPContext.Current.Web.AllUsers[@"SHAREPOINT\SYSTEM"];
        SPUserToken sysAcountToken = sysAcount.UserToken;
        using (SPSite siteCollection = new SPSite(SPContext.Current.Site.Url, sysAcountToken))
        {
                SPWeb currentWeb = siteCollection.RootWeb;
                SPList list = currentWeb.Lists[MyList];
                SPListItem newItem = errorList.Items.Add();  
                newItem[TitleColumnName] = title;
                currentWeb.AllowUnsafeUpdates = true;
                newItem.SystemUpdate(false);
                currentWeb.AllowUnsafeUpdates = false;
                returnValue = newItem.ID;

        }
        return returnValue;
    }

Я понял, что когда мы используем RootWeb, мы не располагаем объектом.Пожалуйста, дайте мне знать, что означает это сообщение об ошибке и как я могу его исправить.У меня в нескольких блогах ошибка не смогла понять ошибку.Пожалуйста, помогите мне.

Ответы [ 2 ]

0 голосов
/ 01 марта 2012

Пожалуйста, попробуйте приведенный ниже пример кода для устранения ошибки SPDisposeChecker.

     public static int AddtoList( string title) 
     {         
      int returnValue = int.MinValue; 
      SPUser sysAcount = SPContext.Current.Web.AllUsers[@"SHAREPOINT\SYSTEM"];
      SPUserToken sysAcountToken = sysAcount.UserToken;
      using (SPSite siteCollection = new SPSite(SPContext.Current.Site.Url, sysAcountToken))
     { 
       //Add below code for dispose currentWeb object end of the functionality             
       using(SPWeb currentWeb = siteCollection.RootWeb)
       {
          SPList list = currentWeb.Lists[MyList];
          SPListItem newItem = errorList.Items.Add(); 
          newItem[TitleColumnName] = title; 
          currentWeb.AllowUnsafeUpdates = true; 
          newItem.SystemUpdate(false);  
          currentWeb.AllowUnsafeUpdates = false; 
          returnValue = newItem.ID;  
        }
      }        
      return returnValue;  
   } 

Happy SharePointing !!!

Спасибо,

0 голосов
/ 29 февраля 2012

У вас самая свежая версия SPDisposeCheck?

Более старая версия (декабрь 2010?) Неправильно помечена .RootWeb

http://blogs.technet.com/b/stefan_gossner/archive/2010/12/15/first-issue-with-spdisposecheck-has-been-identified-by-the-community.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...