public DataCollection Serialize(object obj, ITypeSerializer handler) { PackageBuilder pb = (PackageBuilder)obj; List <string> items = new List <string> (); foreach (SolutionItem sitem in pb.GetChildEntries()) { string file = MD1ProjectService.GetItemFileName(sitem); if (file != null) { items.Add(file); } else if (handler.SerializationContext.ProgressMonitor != null) { handler.SerializationContext.ProgressMonitor.ReportWarning("Can't save reference to item '" + sitem.Name + "'"); } } string rootFile = MD1ProjectService.GetItemFileName(pb.RootSolutionItem); if (rootFile == null && handler.SerializationContext.ProgressMonitor != null) { handler.SerializationContext.ProgressMonitor.ReportWarning("Can't save reference to item '" + pb.RootSolutionItem.Name + "'"); } pb.SetSolutionItemMd1(rootFile, items.ToArray()); return(handler.Serialize(obj)); }