/// <summary>
 /// This method deserializes a blob in to the correct content entity.
 /// </summary>
 /// <param name="blob">The binary blob to deserialize.</param>
 /// <param name="index">The index.</param>
 /// <param name="length">The length.</param>
 /// <param name="formatter">The formatter to use.</param>
 /// <returns>A content object</returns>
 public static IXimuraContent DeserializeToContent(byte[] blob, int index, int length,
     IXimuraFormatter formatter, IXimuraPoolManager pMan)
 {
     using (MemoryStream memStream = new MemoryStream(blob, index, length))
     {
         return DeserializeToContent(memStream, formatter, pMan);
     }
 }
        /// <summary>
        /// This method deserializes the stream in to the correct content entity.
        /// </summary>
        /// <param name="stream">The stream to deserialize from.</param>
        /// <param name="formatter">The formatter.</param>
        /// <param name="pMan">The pool manager to retrieve a new object.</param>
        /// <returns>The content entity.</returns>
        public static IXimuraContent DeserializeToContent(Stream stream, IXimuraFormatter formatter, IXimuraPoolManager pMan)
        {
            IXimuraContent content = formatter.Deserialize(stream, pMan) as IXimuraContent;

            return content;
        }
 /// <summary>
 /// This method deserializes a blob in to the correct content entity.
 /// </summary>
 /// <param name="blob">The binary blob to deserialize.</param>
 /// <param name="formatter">The formatter to use.</param>
 /// <returns>A content object</returns>
 public static IXimuraContent DeserializeToContent(byte[] blob, IXimuraFormatter formatter, IXimuraPoolManager pMan)
 {
     return DeserializeToContent(blob, 0, blob.Length, formatter, pMan);
 }