std::queue
является адаптером контейнера, и вы можете указать используемый контейнер (по умолчанию используется функция deque
). Если вам нужна функциональность, отличная от адаптера, тогда просто используйте deque
или другой контейнер.
Я не знал, что Текстовый объект мог быть создан только со строкой, содержащей полностью определенное имя. Для получения полностью определенного имени можно использовать следующее:
string typeName = typeof (StringBuilder).FullName;
можно тогда сохранить эту строку, однако необходимую, затем восстановить тип как это:
Type t = Type.GetType(typeName);
, Если необходимо создать экземпляр типа, можно сделать это:
object o = Activator.CreateInstance(t);
, Если Вы проверяете значение o. GetType (), это будет StringBuilder, как Вы ожидали бы.
Согласно документации MSDN Системы. Тип [1] необходимо быть в состоянии сериализировать Систему. Текстовый объект. Однако, поскольку ошибка явно относится к Системе. Текст. StringBuilder, который вероятен класс, который вызывает ошибку сериализации.
[1] Класс Типа (Система) - http://msdn.microsoft.com/en-us/library/system.type.aspx
Просто посмотревший его определение, это не отмечено как сериализуемое. Если Вам действительно нужны эти данные, чтобы быть, сериализируют, то Вам, вероятно, придется преобразовать их в пользовательский класс, который отмечен как таковой.
public abstract class Type : System.Reflection.MemberInfo
Member of System
Summary:
Represents type declarations: class types, interface types, array types, value types, enumeration types, type parameters, generic type definitions, and open or closed constructed generic types.
Attributes:
[System.Runtime.InteropServices.ClassInterfaceAttribute(0),
System.Runtime.InteropServices.ComDefaultInterfaceAttribute(System.Runtime.InteropServices._Type),
System.Runtime.InteropServices.ComVisibleAttribute(true)]