/// <summary> Reconstitute this queue instance from a stream (that is, /// deserialize it). /// </summary> /// <param name="info">The <see cref="System.Runtime.Serialization.SerializationInfo"/> to populate with data. </param> /// <param name="context">The destination (see <see cref="System.Runtime.Serialization.StreamingContext"/>) for this serialization. </param> protected LinkedBlockingQueue(SerializationInfo info, StreamingContext context) { SerializationUtilities.DefaultReadObject(info, context, this); _last = _head = new Node(default(T)); T[] items = (T[])info.GetValue("Data", typeof(T[])); foreach (var item in items) { Insert(item); } _activeCount = items.Length; }
/// <summary> Reconstitute the list from a stream (i.e., deserialize it).</summary> /// <param name="s">the stream</param> /// <param name="context">the context</param> protected CopyOnWriteArrayList(SerializationInfo s, StreamingContext context) { // Read in size, and any hidden stuff SerializationUtilities.DefaultReadObject(s, context, this); // Read in array length and allocate array int len = s.GetInt32("Spring.Threading.Collections.CopyOnWriteArrayListdataLength"); T[] elements = new T[len]; // Read in all elements in the proper order. for(int i = 0; i < len; i++) { elements[i] = (T)s.GetValue("Spring.Threading.Collections.CopyOnWriteArrayListdata" + i, typeof(T)); } Array = elements; }
/// <summary> /// Reconstitute the <see cref="PriorityQueue{T}"/> instance from a stream (that is, /// deserialize it). /// </summary> /// <param name="serializationInfo">the stream</param> /// <param name="context">the context</param> protected PriorityQueue(SerializationInfo serializationInfo, StreamingContext context) { SerializationUtilities.DefaultReadObject(serializationInfo, context, this); int arrayLength = serializationInfo.GetInt32("Length"); _queue = new T[arrayLength]; var array = (T[])serializationInfo.GetValue("Data", typeof(T[])); Array.Copy(array, 0, _queue, 0, array.Length); _size = array.Length; var comparer = (IComparer <T>)serializationInfo.GetValue("Comparer", typeof(IComparer <T>)); _comparer = comparer ?? _defaultComparer; }