public virtual void GetObjectData(SerializationInfo info, StreamingContext context)
{
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, info, configuration);
serializer.Serialize(this, serializationContext, configuration);
}
}