void IModuleManagerBase.Save(string regionName, out string logicalState, out string visualState) { if (!allowSaveRestoreLayout) { logicalState = null; visualState = null; return; } var regionsToSerialize = string.IsNullOrEmpty(regionName) ? new List <IRegionImplementation>(regions) : new List <IRegionImplementation>(new[] { GetRegion(regionName) }); LogicalInfo logicalInfo = new LogicalInfo(); VisualInfo visualInfo = new VisualInfo(); foreach (var region in regionsToSerialize) { RegionInfo logicalRegionInfo; RegionVisualInfo visualRegionInfo; region.GetInfo(out logicalRegionInfo, out visualRegionInfo); if (logicalRegionInfo != null) { logicalInfo.Regions.Add(logicalRegionInfo); } if (visualRegionInfo != null) { visualInfo.Regions.Add(visualRegionInfo); } } logicalState = LogicalInfo.Serialize(logicalInfo); visualState = VisualInfo.Serialize(visualInfo); }