Seal.Model.Report.Serialize C# (CSharp) Méthode

Serialize() public méthode

public Serialize ( string path ) : void
path string
Résultat void
        public void Serialize(string path)
        {
            try
            {
                foreach (var output in Outputs) output.BeforeSerialization();
                foreach (var view in Views)
                {
                    view.SetAdvancedConfigurations();
                    view.BeforeSerialization();
                }
                //serialize only not readonly metadata
                foreach (ReportSource source in Sources)
                {
                    source.TempConnections = source.Connections.ToList();
                    source.TempTables = source.MetaData.Tables.ToList();
                    source.TempJoins = source.MetaData.Joins.ToList();
                    source.TempEnums = source.MetaData.Enums.ToList();
                    source.Connections.RemoveAll(i => !i.IsEditable);
                    source.MetaData.Tables.RemoveAll(i => !i.IsEditable);
                    source.MetaData.Joins.RemoveAll(i => !i.IsEditable);
                    source.MetaData.Enums.RemoveAll(i => !i.IsEditable);
                }
                XmlSerializer serializer = new XmlSerializer(typeof(Report));
                StreamWriter sw = new StreamWriter(path);
                serializer.Serialize(sw, this);
                sw.Close();
            }
            finally
            {
                foreach (ReportSource source in Sources)
                {
                    source.Connections = source.TempConnections;
                    source.MetaData.Tables = source.TempTables;
                    source.MetaData.Joins = source.TempJoins;
                    source.MetaData.Enums = source.TempEnums;
                }
                foreach (var view in Views) view.AfterSerialization();
                foreach (var output in Outputs) output.AfterSerialization();
            }
        }