2012-02-28 2 views
1

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

+0

http://blogs.msdn.com/b/rogerla/archive/2008/10/04/updated-spsite-rootweb-dispose-guidance.aspx – Ryan

ответ

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

+0

Я скачал версию 12/Обновление 13/2010: SPDisposeCheck v14.0.4762.1000. Я не мог найти никаких других последних версий. Я также запускаю инструмент MSOCAF, он также показывает ту же ошибку. Как мне получить его corrected.please, дайте мне знать. – Janet

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; 
    } 

Happy SharePointing !!!

Спасибо,

Смежные вопросы