Палец вверх 1
Перевод
Перевод

Ошибка при запуске инструмента SPDisposeChecker

Я получаю сообщение об ошибке «Одноразовый тип не удален 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, мы не располагаем объектом. Пожалуйста, дайте мне знать, что означает это сообщение об ошибке и как я могу его исправить. У меня в нескольких блогах ошибка не смогла понять ошибку. Пожалуйста, помогите мне.

sharepoint sharepoint-2010
задан Janet 29 февр. 2012 г., 3:55:17
источник

2 ответа

Палец вверх 0
Перевод
Перевод

У вас самая свежая версия 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

ответ дан Ryan 29 февр. 2012 г., 12:00:46
источник
Палец вверх 0
Перевод
Перевод

Пожалуйста, попробуйте ниже пример кода для устранения ошибки 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;  
   } 

Счастливого SharePointing !!!

Спасибо,

ответ дан SharePoint Build 1 мар. 2012 г., 10:27:22
источник