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);
        }