protected static RestoreResult[] RestoreAll(ObjectDeserializationChecker checker, params object[] objects) { var restoreResults = new List <RestoreResult>(); foreach (var obj in objects) { try { restoreResults.Add(checker.IsRestorable(obj, out string difference) ? RestoreResult.Ok(obj.GetType()) : RestoreResult.Diff(obj.GetType(), difference)); } catch (Exception ex) { restoreResults.Add(RestoreResult.Error(obj.GetType(), ex)); } } return(restoreResults.ToArray()); }