При удалении списка a при возникновении ошибки «Список не существует». Моя последовательность:Список удалений не работает: «Список не существует»
try { deleteList("myList"); } catch { } // delete list in case it exists
createList("myList");
// Do something with the list. Does not matter
deleteList("myList");
Если список не существует в то время, когда я запускаю код, все работает нормально. Если, однако, список существует, я получаю ошибку. Когда я просматриваю код, я вижу (в браузере), что список действительно удаляется и воссоздается.
Когда я создаю новый clientContext между createList() и deleteList(), тогда он работает. Я предполагаю, что что-то в clientContext испортилось.
Я не думаю, что он должен делать со своими функциями, но в любом случае, здесь они:
public void CreateList(string title)
{
ListCreationInformation lci = new ListCreationInformation();
lci.Title = title;
lci.TemplateType = (int)ListTemplateType.GenericList;
List spList = context.Web.Lists.Add(lci);
context.Load(spList);
spList.Update();
context.ExecuteQuery();
}
public void DeleteList(string listname)
{
List spList = context.Web.Lists.GetByTitle(listname);
spList.DeleteObject();
context.ExecuteQuery();
}
Благодарим за это подтверждение. Я весьма признателен. Была бы возможность сделать это без повторного создания клиентского контекста, например. путем удаления сохраненного состояния в контексте клиента. –
Удалить ExecuteQuery() из всех функций, таких как: CreateList (название строки) и DeleteList (имя строки), и называть его ТОЛЬКО ОДИН РАЗ в конце вашего кода. Не уверен, что это сработает или нет. – Vaibhav