Я бы определенно избежал попытки сериализовать что-либо, отдаленно напоминающее лямбду, или, в этом отношении, именованные методы. Помните: вы храните состояние и ничего больше.
В зависимости от того, насколько широки и широки ваши различные назначения для этих делегатов, вы можете избежать использования Dictionary<String, WhateverDelagateType>
, сериализации ключей и поиска обратных вызовов после десериализации.
Еще одна вещь, которую нужно учитывать - я не эксперт, но, читая между строк, звучит так, будто вы работаете над захоронением очень временного модального диалога. Вы действительно этого хотите? Возможно, было бы лучше, если бы он возвратил своего пользователя прямо в таблицу рекордов или что бы то ни было после вашего диалога.