Хороший вопрос. Возникает, не иначе, после знакомства с классическими шаблонами разработки. Можно.
- Класс должен быть сериализуемым, т.е. на базе интерфейса SysPackable. Класс не должен принимать параметров в new(). Например, все классы на основе RunBase подходят.
- Узнать classId объекта с помощью функции сlassIdGet()
- Если заранее не известно, сериализуемый ли класс или нет, определить это с помощью DictClass.implements() или просто проверить наличие методов с именами pack и unpack
- Запаковать
- Создать новый объект по номеру класса с помощью DictClass.makeObject()
- Распаковать.