删除sitecore项目子项时出现NullReferenceException

时间:2012-10-02 17:58:17

标签: c# sitecore

我正在尝试将一些旧的民意调查数据导入我们的sitecore解决方案。对于导入的一部分,我正在尝试创建新的sitecore项目来保存基于我们已经为民意调查设置的母版页的数据。这个master下面设置了几个默认项,我想在添加旧的poll数据之前删除一些特定的默认项。但是,当我尝试使用item.DeleteChildren()删除其中一个默认项时,我会在sitecore内核中NullReferenceException抛出Sitecore.Tasks.ItemEventHandler.OnItemDeleted(Object sender, EventArgs args)。如果有人知道可能导致这种情况的原因,我会很感激。我们使用的是sitecore版本5.3.2。

这里是我用来尝试根据主人创建/编辑项目的代码。创作完美无缺,这是DeleteChildren()调用不起作用。

   Guid LegacyPollFolderGuid = new Guid("8AE89A44-9DCD-4AC2-B0F3-DD438188A575");
   Guid QuizOMaticMasterGuid = new Guid("74B95ABF-1898-4870-8B4F-50AF0078AE22");

   var master = Sitecore.Configuration.Factory.GetDatabase("master");
   var root = master.GetItem(new Sitecore.Data.ID(LegacyPollFolderGuid));
   var quizMasterTemplate = master.Masters[new Sitecore.Data.ID(QuizOMaticMasterGuid)];

   var quizPage = root.Add("Test Quiz", quizMasterTemplate);
   if (quizPage != null)
   {
      var quiz = quizPage.Children["Column One"].Children["QuizOMatic"];
      if (quiz != null)
      {
         var questionFolder = quiz.Children["Questions"];
         var questionTemplate = questionFolder.Children[0].Template;
         var resultsFolder = quiz.Children["Results"];
         var linksFolder = quiz.Children["Links"];

         using (new Sitecore.SecurityModel.SecurityDisabler())
         {
            questionFolder.DeleteChildren();
         }
      }

1 个答案:

答案 0 :(得分:0)

我已经构建了一个具有相同功能的工具;删除特定文件夹下的所有项目。我得到了同样的错误,但我看到项目被删除了。所以我多次重新使用该工具,最终删除了所有项目。