/// <summary>
        /// 
        /// </summary>
        /// <param name="container"></param>
        /// <param name="formatter"></param>
        /// <param name="fstream"></param>
        private void DeserializeContainer(DvMediaContainer container, BinaryFormatter formatter, FileStream fstream)
        {
            // get number of children in container
            int count = (int) formatter.Deserialize (fstream);

            ArrayList children = new ArrayList(count);
            object obj;
            DvMediaItem dvi;
            DvMediaContainer dvc;
            for (int i=0; i<count; i++)
            {
                try
                {
                    obj = formatter.Deserialize(fstream);
                }
                catch (Exception e)
                {
                    throw new SerializationException("Error deserializing a child of containerID=\"" +container.ID+ "\" Title=\"" +container.Title+ "\".", e);
                }

                dvi = obj as DvMediaItem;
                dvc = obj as DvMediaContainer;

                if (dvc != null)
                {
                    this.DeserializeContainer(dvc, formatter, fstream);
                    children.Add(dvc);
                }
                else if (dvi != null)
                {
                    children.Add(dvi);
                }
                else
                {
                    throw new ApplicationException("The MediaServer deserialized an object that is neither a DvMediaItem nor a DvMediaContainer.");
                }

            }
            container.AddObjects(children, true);
        }