В C#, Как я могу сериализировать Очередь <>? (.Net 2.0)

Ваш отступ неверен в нескольких местах. Вам нужно создать пустую форму, если запрос не POST; и вам нужно вернуться при любых обстоятельствах. Итак:

def post_edit(request, pk):
    post = get_object_or_404(Post, pk=pk)
    if request.method == "POST":
        form = PostForm(request.POST, request.FILES, instance=post)
        if form.is_valid():
            post = form.save(commit=False)
            post.author = request.user
            post.published_date = timezone.now()
            post.save()
            return redirect('post_detail', pk=post.pk)
     else:
        form = PostForm(instance=post)
     return render(request, 'blog/post_edit.html', {'form':form})

Обратите внимание, как else совпадает с первым if, и отдача находится вне их обоих.

8
задан CrashCodes 21 November 2008 в 21:14
поделиться

3 ответа

Было бы легче (и более соответствующий IMO) сериализировать данные из очереди - возможно, в плоской антенной решетке или List<T>. С тех пор Queue<T> реализации IEnumerable<T>, необходимо смочь использовать:

List<T> list = new List<T>(queue);
14
ответ дан 5 December 2019 в 11:28
поделиться

Не все части платформы разработаны для сериализации XML. Вы найдете, что словарям также недостает отдела сериализации.

Очередь довольно тривиальна для реализации. Можно легко создать собственное, которое также реализует IList так, чтобы это было сериализуемым.

1
ответ дан 5 December 2019 в 11:28
поделиться

если Вы хотите использовать созданный в сериализации, необходимо играть по ее правилам, что означает значение по умолчанию ctor, и общественность получает/устанавливает свойства для участников, которых Вы хотите сериализировать (и по-видимому десериализовать) на типе данных, который Вы хотите сериализировать (MyData)

0
ответ дан 5 December 2019 в 11:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: