private object Deserialize(StructuredType expectedBaseType, object patchedObject = null)
{
if (!Request.Body.CanSeek)
{
var memStream = new MemoryStream();
Request.Body.CopyTo(memStream);
memStream.Seek(0, SeekOrigin.Begin);
Request.Body = memStream;
}
if (Request.Body.Position != 0)
Request.Body.Seek(0, SeekOrigin.Begin);
using (var textReader = new StreamReader(Request.Body))
{
var deserializer = Session.GetInstance<ITextDeserializer>();
var options = new DeserializeOptions()
{
Target = patchedObject,
ExpectedBaseType = expectedBaseType,
TargetNode = Node
};
return deserializer.Deserialize(textReader, options);
}
}