private void DoSomethingToContentPartsRecursively(OPCPackage package, PartInfo part, PartProcessingDelegate whatToDo)
        {
            using (Stream data = part.GetContent())
            {
                whatToDo(data, part);
            }

            foreach (PartInfo pi in part.GetRelatedObjects())
            {
                DoSomethingToContentPartsRecursively(package, pi, whatToDo);
            }

        }
 private void ValidateFileRecursively(string outputFile, PartProcessingDelegate whatToDo)
 {
     using (OPCPackage package = new OPCPackage(File.Open(outputFile, FileMode.Open)))
     {
         DoSomethingToContentPartsRecursively(package, package.RootPart, whatToDo);
     }
 }