in src/BackupExplorer/RestServer/BackupWebHost.cs [65:93]
private BackupParserManager SetupBackupParserManagerAndStartParsing()
{
var backupParser = new BackupParser(this.backupChainInfo.BackupChainPath, this.backupChainInfo.CodePackagePath);
var stateManager = backupParser.StateManager;
foreach (var serializer in this.backupChainInfo.Serializers)
{
var stateTypeName = serializer.StateFullyQualifiedTypeName;
var serializerTypeName = serializer.SerializerFullyQualifiedTypeName;
var stateType = Type.GetType(stateTypeName, true);
var serializerType = Type.GetType(serializerTypeName, true);
var serializerObject = new object();
if (serializerType.Name != "DataContractSerializer")
{
serializerObject = Activator.CreateInstance(serializerType);
stateManager.GetType()
.GetMethod("TryAddStateSerializer", BindingFlags.Instance | BindingFlags.Public)
.MakeGenericMethod(stateType)
.Invoke(stateManager, new object[] { serializerObject });
}
}
var backupParserManager = new BackupParserManager(backupParser);
backupParserManager.StartParsing();
return backupParserManager;
}