public override object Deserialize(object o, Altaxo.Serialization.Xml.IXmlDeserializationInfo info, object parent) { XYColumnPlotData s = null != o ? (XYColumnPlotData)o : new XYColumnPlotData(info); base.Deserialize(s, info, parent); bool bNeedsCallback = false; object labelColumn = null; int nOptionalData = info.OpenArray(); { if (nOptionalData == 1) { string keystring = info.GetNodeName(); labelColumn = info.GetValue("LabelColumn", s); if (labelColumn is Altaxo.Data.IReadableColumn) s._deprecatedLabelColumn = (Altaxo.Data.IReadableColumn)labelColumn; else if (labelColumn is Main.AbsoluteDocumentPath) bNeedsCallback = true; } } info.CloseArray(nOptionalData); if (bNeedsCallback) { XmlSerializationSurrogate2 surr = new XmlSerializationSurrogate2(); surr._labelColumn = labelColumn as Main.AbsoluteDocumentPath; surr._plotAssociation = s; info.DeserializationFinished += new Altaxo.Serialization.Xml.XmlDeserializationCallbackEventHandler(surr.EhDeserializationFinished2); } return s; }
public object Deserialize(object o, Altaxo.Serialization.Xml.IXmlDeserializationInfo info, object parent) { MultivariateContentMemento s = null != o ? (MultivariateContentMemento)o : new MultivariateContentMemento(); s.OriginalDataTableName = info.GetString("Name"); s.SpectrumIsRow = info.GetBoolean("SpectrumIsRow"); s.SpectralIndices = (IAscendingIntegerCollection)info.GetValue("SpectralIndices", s); s.ConcentrationIndices = (IAscendingIntegerCollection)info.GetValue("ConcentrationIndices", s); s.MeasurementIndices = (IAscendingIntegerCollection)info.GetValue("MeasurementIndices", s); s._PreferredNumberOfFactors = info.GetInt32("PreferredNumberOfFactors"); // new in version 1 int[] regions; info.GetArray("SpectralPreprocessingRegions", out regions); s._spectralPreprocessing.Regions = regions; s._spectralPreprocessing.Method = (SpectralPreprocessingMethod)info.GetEnum("SpectralPreprocessingMethod", typeof(SpectralPreprocessingMethod)); s._spectralPreprocessing.DetrendingOrder = info.GetInt32("SpectralPreprocessingDetrending"); s._spectralPreprocessing.EnsembleScale = info.GetBoolean("SpectralPreprocessingEnsembleScale"); // new in version 2 s._ClassNameOfAnalysisClass = info.GetString("ClassNameOfAnalysisClass"); // added fix after version 2 : forgotten to serialize crossPRESSCalculationType if (info.GetNodeName() == "CrossPRESSCalculationType") s._crossPRESSCalculationType = (CrossPRESSCalculationType)info.GetValue("CrossPRESSCalculationType", s); else s._crossPRESSCalculationType = CrossPRESSCalculationType.ExcludeGroupsOfSimilarMeasurements; return s; }