private void OnDeserialized(StreamingContext context)
{
IsDeserializedDataAvailable = true;
if (_serializationInfo == null)
{
// Probably a custom serializer which will populate us in a different way
return;
}
var scopeName = SerializationContextHelper.GetSerializationReferenceManagerScopeName();
using (var scopeManager = ScopeManager<SerializationScope>.GetScopeManager(scopeName, () => new SerializationScope(SerializationFactory.GetBinarySerializer(), SerializationConfiguration)))
{
var serializer = scopeManager.ScopeObject.Serializer;
var configuration = scopeManager.ScopeObject.Configuration;
var dependencyResolver = this.GetDependencyResolver();
var serializationContextInfoFactory = dependencyResolver.Resolve<ISerializationContextInfoFactory>(serializer.GetType());
var serializationContext = serializationContextInfoFactory.GetSerializationContextInfo(serializer, this, _serializationInfo, configuration);
serializer.Deserialize(this, serializationContext, configuration);
}
DeserializationSucceeded = true;
}
}