Сборник ошибок изменен, не может выполнить перечисление в списке sharepoint - PullRequest
0 голосов
/ 06 марта 2012

не знаю, почему я получаю вышеуказанную ошибку, я знаю, что она из-за UpdateWorkflowAssociation находится внутри foreach, но мне это нужно Простая помощь будет высоко ценится

                        `siteName = "http://xyz";

                        newCleanupDays = 5;
                        assoCounter = 0;
                        using (wfSite = new SPSite(siteName))
                        {
                            using (wfWeb = wfSite.OpenWeb())
                            {

                               //wfList = wfWeb.Lists[libraryName];
                                SPListCollection collList = wfWeb.Lists; //Open Lists
                                SPWorkflowAssociation _wfAssociation = null;

                                foreach (SPList oList in collList)
                                {
                                    if (oList.WorkflowAssociations.Count > 0)
                                    {
                                        foreach (SPWorkflowAssociation a in oList.WorkflowAssociations)
                                        {
                                            if (a.Name != null || a.Name != string.Empty)
                                            {
                                                a.AutoCleanupDays = newCleanupDays;
                                                _wfAssociation = a;
                                                assoCounter++;
                                            }
                                            else
                                            {
                                                _wfAssociation = a;
                                            }

                                        }
                                        oList.UpdateWorkflowAssociation(_wfAssociation);
                                    }

                                }
                                System.Console.WriteLine("\n" + wfAssoName + ": " + assoCounter.ToString() + " workflow association(s) changed successfuly!\n");
                            }
                        }`

1 Ответ

1 голос
/ 06 марта 2012

вместо

foreach (SPList oList in collList)

просто напишите

foreach (SPList oList in collList.ToList())

Таким образом, вы будете перебирать копию, которая не изменена во время итерации, но коллекцию real можно обновить.

...