diff --git a/TestBenchFramework/BenchControl/Ambient/Comet/AmbientCfg.cs b/TestBenchFramework/BenchControl/Ambient/Comet/AmbientCfg.cs index 91f2974de..8604cd23e 100644 --- a/TestBenchFramework/BenchControl/Ambient/Comet/AmbientCfg.cs +++ b/TestBenchFramework/BenchControl/Ambient/Comet/AmbientCfg.cs @@ -11,6 +11,9 @@ namespace TBF.BenchControl.Ambient.Comet { public class AmbientCfg : ComponentCfgBase, Generic.IComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(AmbientCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new AmbientCfgCtrl(); } /// diff --git a/TestBenchFramework/BenchControl/Ambient/Comet/Factory.cs b/TestBenchFramework/BenchControl/Ambient/Comet/Factory.cs index 179ad1686..49ce58624 100644 --- a/TestBenchFramework/BenchControl/Ambient/Comet/Factory.cs +++ b/TestBenchFramework/BenchControl/Ambient/Comet/Factory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.Ambient.Comet public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(AmbientCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(AmbientCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/Ambient/Greco/AmbientCfg.cs b/TestBenchFramework/BenchControl/Ambient/Greco/AmbientCfg.cs index a2749cc30..b1a9782f9 100644 --- a/TestBenchFramework/BenchControl/Ambient/Greco/AmbientCfg.cs +++ b/TestBenchFramework/BenchControl/Ambient/Greco/AmbientCfg.cs @@ -11,6 +11,9 @@ namespace TBF.BenchControl.Ambient.Greco { public class AmbientCfg : ComponentCfgBase, Generic.IComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(AmbientCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new AmbientCfgCtrl(); } /// diff --git a/TestBenchFramework/BenchControl/Ambient/Greco/Factory.cs b/TestBenchFramework/BenchControl/Ambient/Greco/Factory.cs index fa636d56f..1b45b2e18 100644 --- a/TestBenchFramework/BenchControl/Ambient/Greco/Factory.cs +++ b/TestBenchFramework/BenchControl/Ambient/Greco/Factory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.Ambient.Greco public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(AmbientCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(AmbientCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/BenchInfo/Munich/ComponentCfg.cs b/TestBenchFramework/BenchControl/BenchInfo/Munich/ComponentCfg.cs index 083a44af6..3cb06f4b6 100644 --- a/TestBenchFramework/BenchControl/BenchInfo/Munich/ComponentCfg.cs +++ b/TestBenchFramework/BenchControl/BenchInfo/Munich/ComponentCfg.cs @@ -14,6 +14,9 @@ namespace TBF.BenchControl.BenchInfo.Munich /// public class ComponentCfg : ComponentCfgBase, Generic.IComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(ComponentCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new ComponentCfgCtrl(); } /// diff --git a/TestBenchFramework/BenchControl/BenchInfo/Munich/ComponentFactory.cs b/TestBenchFramework/BenchControl/BenchInfo/Munich/ComponentFactory.cs index 4572bed53..f863e6f08 100644 --- a/TestBenchFramework/BenchControl/BenchInfo/Munich/ComponentFactory.cs +++ b/TestBenchFramework/BenchControl/BenchInfo/Munich/ComponentFactory.cs @@ -21,7 +21,7 @@ namespace TBF.BenchControl.BenchInfo.Munich public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(ComponentCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(ComponentCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/BenchInfo/Polska/ComponentCfg.cs b/TestBenchFramework/BenchControl/BenchInfo/Polska/ComponentCfg.cs index 1fc4d6308..3ffb89245 100644 --- a/TestBenchFramework/BenchControl/BenchInfo/Polska/ComponentCfg.cs +++ b/TestBenchFramework/BenchControl/BenchInfo/Polska/ComponentCfg.cs @@ -14,6 +14,9 @@ namespace TBF.BenchControl.BenchInfo.Polska /// public class ComponentCfg : ComponentCfgBase, Generic.IComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(ComponentCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new ComponentCfgCtrl(); } /// diff --git a/TestBenchFramework/BenchControl/BenchInfo/Polska/ComponentFactory.cs b/TestBenchFramework/BenchControl/BenchInfo/Polska/ComponentFactory.cs index 05f8941b8..b5d150e2d 100644 --- a/TestBenchFramework/BenchControl/BenchInfo/Polska/ComponentFactory.cs +++ b/TestBenchFramework/BenchControl/BenchInfo/Polska/ComponentFactory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.BenchInfo.Polska public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(ComponentCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(ComponentCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/ComponentCfgBase.cs b/TestBenchFramework/BenchControl/ComponentCfgBase.cs index 98659e20c..8a65cc287 100644 --- a/TestBenchFramework/BenchControl/ComponentCfgBase.cs +++ b/TestBenchFramework/BenchControl/ComponentCfgBase.cs @@ -12,7 +12,7 @@ namespace TBF.BenchControl { public class ComponentCfgBase { - [XmlIgnore] + [XmlIgnore] public string Name { get { return name; } @@ -94,28 +94,32 @@ namespace TBF.BenchControl } + protected virtual XmlSerializer GetSerializer() { return new XmlSerializer(GetType()); } + public Component CreateDbEntity() { using (var writer = new StringWriter()) { - (new XmlSerializer(GetType())).Serialize(writer, this); + GetSerializer().Serialize(writer, this); return Component.CreateFromCfg(Name, factory.ClassName, ParentName, ItemNr, DebugLevel, LogLevel, writer.ToString()); } } - - public static IComponentCfg CreateFromDbEntity(Type type, Component cmpntEntity, IComponentFactory factory) + public static IComponentCfg CreateFromDbEntity(XmlSerializer s, Component cmpntEntity, IComponentFactory factory) { using (var reader = new StringReader(cmpntEntity.Parameters)) { - IComponentCfg config = (IComponentCfg)(new XmlSerializer(type)).Deserialize(reader); - config.Name = cmpntEntity.Name; - config.ParentName = cmpntEntity.ParentName; - config.ItemNr = cmpntEntity.ItemNr; - config.DebugLevel = cmpntEntity.Mode; - config.LogLevel = cmpntEntity.Logging; - config.Corrections = cmpntEntity.Corrections; - config.Factory = factory; + IComponentCfg config = s.Deserialize(reader) as IComponentCfg; + if (config != null) + { + config.Name = cmpntEntity.Name; + config.ParentName = cmpntEntity.ParentName; + config.ItemNr = cmpntEntity.ItemNr; + config.DebugLevel = cmpntEntity.Mode; + config.LogLevel = cmpntEntity.Logging; + config.Corrections = cmpntEntity.Corrections; + config.Factory = factory; + } return config; } } diff --git a/TestBenchFramework/BenchControl/Configs/NameOnly/TestMethodCfg.cs b/TestBenchFramework/BenchControl/Configs/NameOnly/TestMethodCfg.cs index 98d537508..b2655f3a8 100644 --- a/TestBenchFramework/BenchControl/Configs/NameOnly/TestMethodCfg.cs +++ b/TestBenchFramework/BenchControl/Configs/NameOnly/TestMethodCfg.cs @@ -2,11 +2,15 @@ /// Copyright (c) 2016 Sensus Metering Systems /// using TBF.BenchControl.Generic; +using System.Xml.Serialization; namespace TBF.BenchControl.Configs.NameOnly { public class TestMethodCfg : ComponentCfgBase, Generic.IComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TestMethodCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new TestMethodCfgCtrl(); } /// Private parameterless constructor invoked by all other (public) constructors diff --git a/TestBenchFramework/BenchControl/DB/SensusOracle/DatabaseCfg.cs b/TestBenchFramework/BenchControl/DB/SensusOracle/DatabaseCfg.cs index 1169c573b..8cb6c8add 100644 --- a/TestBenchFramework/BenchControl/DB/SensusOracle/DatabaseCfg.cs +++ b/TestBenchFramework/BenchControl/DB/SensusOracle/DatabaseCfg.cs @@ -30,6 +30,9 @@ namespace TBF.BenchControl.DB.SensusOracle public class DatabaseCfg : ComponentCfgBase, Generic.IComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(DatabaseCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new DatabaseCfgCtrl(); } diff --git a/TestBenchFramework/BenchControl/DB/SensusOracle/DatabaseFactory.cs b/TestBenchFramework/BenchControl/DB/SensusOracle/DatabaseFactory.cs index ca0cbed6b..42fd856a7 100644 --- a/TestBenchFramework/BenchControl/DB/SensusOracle/DatabaseFactory.cs +++ b/TestBenchFramework/BenchControl/DB/SensusOracle/DatabaseFactory.cs @@ -21,7 +21,7 @@ namespace TBF.BenchControl.DB.SensusOracle public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(DatabaseCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(DatabaseCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/Danfoss/VLT2800/PumpCfg.cs b/TestBenchFramework/BenchControl/Danfoss/VLT2800/PumpCfg.cs index 041604828..e47122256 100644 --- a/TestBenchFramework/BenchControl/Danfoss/VLT2800/PumpCfg.cs +++ b/TestBenchFramework/BenchControl/Danfoss/VLT2800/PumpCfg.cs @@ -11,6 +11,9 @@ namespace TBF.BenchControl.Danfoss.VLT2800 { public class PumpCfg : ComponentCfgBase, Generic.IComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(PumpCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new PumpCfgCtrl(); } /// diff --git a/TestBenchFramework/BenchControl/Danfoss/VLT2800/PumpFactory.cs b/TestBenchFramework/BenchControl/Danfoss/VLT2800/PumpFactory.cs index d55923e3f..14003044d 100644 --- a/TestBenchFramework/BenchControl/Danfoss/VLT2800/PumpFactory.cs +++ b/TestBenchFramework/BenchControl/Danfoss/VLT2800/PumpFactory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.Danfoss.VLT2800 public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(PumpCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(PumpCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/DataEntry/Combined/EntryFormCfg.cs b/TestBenchFramework/BenchControl/DataEntry/Combined/EntryFormCfg.cs index 0e71ffc88..58e81d509 100644 --- a/TestBenchFramework/BenchControl/DataEntry/Combined/EntryFormCfg.cs +++ b/TestBenchFramework/BenchControl/DataEntry/Combined/EntryFormCfg.cs @@ -11,6 +11,9 @@ namespace TBF.BenchControl.DataEntry.Combined { public class EntryFormCfg : ComponentCfgBase, Generic.IComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(EntryFormCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new EntryFormCfgCtrl(); } /// diff --git a/TestBenchFramework/BenchControl/DataEntry/Combined/EntryFormFactory.cs b/TestBenchFramework/BenchControl/DataEntry/Combined/EntryFormFactory.cs index c64e87db1..f13842944 100644 --- a/TestBenchFramework/BenchControl/DataEntry/Combined/EntryFormFactory.cs +++ b/TestBenchFramework/BenchControl/DataEntry/Combined/EntryFormFactory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.DataEntry.Combined public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(EntryFormCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(EntryFormCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/DataEntry/HeatMeters12/EntryFormCfg.cs b/TestBenchFramework/BenchControl/DataEntry/HeatMeters12/EntryFormCfg.cs index b5f02dce5..20e20c0b0 100644 --- a/TestBenchFramework/BenchControl/DataEntry/HeatMeters12/EntryFormCfg.cs +++ b/TestBenchFramework/BenchControl/DataEntry/HeatMeters12/EntryFormCfg.cs @@ -11,6 +11,9 @@ namespace TBF.BenchControl.DataEntry.HeatMeters12 { public class EntryFormCfg : ComponentCfgBase, Generic.IComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(EntryFormCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new EntryFormCfgCtrl(); } /// diff --git a/TestBenchFramework/BenchControl/DataEntry/HeatMeters12/Factory.cs b/TestBenchFramework/BenchControl/DataEntry/HeatMeters12/Factory.cs index 8e0c4217a..71d746b43 100644 --- a/TestBenchFramework/BenchControl/DataEntry/HeatMeters12/Factory.cs +++ b/TestBenchFramework/BenchControl/DataEntry/HeatMeters12/Factory.cs @@ -23,7 +23,7 @@ namespace TBF.BenchControl.DataEntry.HeatMeters12 public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - IComponentCfg cfg = ComponentCfgBase.CreateFromDbEntity(typeof(EntryFormCfg), component, this); + IComponentCfg cfg = ComponentCfgBase.CreateFromDbEntity(EntryFormCfg.Serializer, component, this); (cfg as EntryFormCfg).Units = (cfg as EntryFormCfg).DefaultUnits; return cfg; } diff --git a/TestBenchFramework/BenchControl/DataEntry/HeatMeters6/EntryFormCfg.cs b/TestBenchFramework/BenchControl/DataEntry/HeatMeters6/EntryFormCfg.cs index aa72ee5bf..459f8e7d4 100644 --- a/TestBenchFramework/BenchControl/DataEntry/HeatMeters6/EntryFormCfg.cs +++ b/TestBenchFramework/BenchControl/DataEntry/HeatMeters6/EntryFormCfg.cs @@ -11,6 +11,9 @@ namespace TBF.BenchControl.DataEntry.HeatMeters6 { public class EntryFormCfg : ComponentCfgBase, Generic.IComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(EntryFormCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new EntryFormCfgCtrl(); } /// diff --git a/TestBenchFramework/BenchControl/DataEntry/HeatMeters6/Factory.cs b/TestBenchFramework/BenchControl/DataEntry/HeatMeters6/Factory.cs index 4f2f97d47..63545b17a 100644 --- a/TestBenchFramework/BenchControl/DataEntry/HeatMeters6/Factory.cs +++ b/TestBenchFramework/BenchControl/DataEntry/HeatMeters6/Factory.cs @@ -23,7 +23,7 @@ namespace TBF.BenchControl.DataEntry.HeatMeters6 public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - IComponentCfg cfg = ComponentCfgBase.CreateFromDbEntity(typeof(EntryFormCfg), component, this); + IComponentCfg cfg = ComponentCfgBase.CreateFromDbEntity(EntryFormCfg.Serializer, component, this); (cfg as EntryFormCfg).Units = (cfg as EntryFormCfg).DefaultUnits; return cfg; } diff --git a/TestBenchFramework/BenchControl/DataEntry/Munich/EntryFormCfg.cs b/TestBenchFramework/BenchControl/DataEntry/Munich/EntryFormCfg.cs index fffc08d46..b117d28d5 100644 --- a/TestBenchFramework/BenchControl/DataEntry/Munich/EntryFormCfg.cs +++ b/TestBenchFramework/BenchControl/DataEntry/Munich/EntryFormCfg.cs @@ -11,6 +11,9 @@ namespace TBF.BenchControl.DataEntry.Munich { public class EntryFormCfg : ComponentCfgBase, Generic.IComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(EntryFormCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new EntryFormCfgCtrl(); } /// diff --git a/TestBenchFramework/BenchControl/DataEntry/Munich/EntryFormFactory.cs b/TestBenchFramework/BenchControl/DataEntry/Munich/EntryFormFactory.cs index 7f931d359..57af5a731 100644 --- a/TestBenchFramework/BenchControl/DataEntry/Munich/EntryFormFactory.cs +++ b/TestBenchFramework/BenchControl/DataEntry/Munich/EntryFormFactory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.DataEntry.Munich public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(EntryFormCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(EntryFormCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/DataEntry/Munich3/EntryFormCfg.cs b/TestBenchFramework/BenchControl/DataEntry/Munich3/EntryFormCfg.cs index 15e0fa761..d9385b75d 100644 --- a/TestBenchFramework/BenchControl/DataEntry/Munich3/EntryFormCfg.cs +++ b/TestBenchFramework/BenchControl/DataEntry/Munich3/EntryFormCfg.cs @@ -11,6 +11,9 @@ namespace TBF.BenchControl.DataEntry.Munich3 { public class EntryFormCfg : ComponentCfgBase, Generic.IComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(EntryFormCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new EntryFormCfgCtrl(); } /// diff --git a/TestBenchFramework/BenchControl/DataEntry/Munich3/EntryFormFactory.cs b/TestBenchFramework/BenchControl/DataEntry/Munich3/EntryFormFactory.cs index db50cb4c0..8f44aa919 100644 --- a/TestBenchFramework/BenchControl/DataEntry/Munich3/EntryFormFactory.cs +++ b/TestBenchFramework/BenchControl/DataEntry/Munich3/EntryFormFactory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.DataEntry.Munich3 public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(EntryFormCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(EntryFormCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/DataEntry/Standard12/EntryFormCfg.cs b/TestBenchFramework/BenchControl/DataEntry/Standard12/EntryFormCfg.cs index 839e9d727..9828919d5 100644 --- a/TestBenchFramework/BenchControl/DataEntry/Standard12/EntryFormCfg.cs +++ b/TestBenchFramework/BenchControl/DataEntry/Standard12/EntryFormCfg.cs @@ -11,6 +11,9 @@ namespace TBF.BenchControl.DataEntry.Standard12 { public class EntryFormCfg : ComponentCfgBase, Generic.IComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(EntryFormCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new EntryFormCfgCtrl(); } /// diff --git a/TestBenchFramework/BenchControl/DataEntry/Standard12/Factory.cs b/TestBenchFramework/BenchControl/DataEntry/Standard12/Factory.cs index 8e0915a90..3b4214a2b 100644 --- a/TestBenchFramework/BenchControl/DataEntry/Standard12/Factory.cs +++ b/TestBenchFramework/BenchControl/DataEntry/Standard12/Factory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.DataEntry.Standard12 public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(EntryFormCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(EntryFormCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/DataEntry/Standard12/FactoryNoStartEnd.cs b/TestBenchFramework/BenchControl/DataEntry/Standard12/FactoryNoStartEnd.cs index 6a7ebb7e9..7837940e5 100644 --- a/TestBenchFramework/BenchControl/DataEntry/Standard12/FactoryNoStartEnd.cs +++ b/TestBenchFramework/BenchControl/DataEntry/Standard12/FactoryNoStartEnd.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.DataEntry.Standard12 public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(EntryFormCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(EntryFormCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/DataEntry/Standard24/EntryFormCfg.cs b/TestBenchFramework/BenchControl/DataEntry/Standard24/EntryFormCfg.cs index 11ad2a7e3..8654c719a 100644 --- a/TestBenchFramework/BenchControl/DataEntry/Standard24/EntryFormCfg.cs +++ b/TestBenchFramework/BenchControl/DataEntry/Standard24/EntryFormCfg.cs @@ -11,6 +11,9 @@ namespace TBF.BenchControl.DataEntry.Standard24 { public class EntryFormCfg : ComponentCfgBase, Generic.IComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(EntryFormCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new EntryFormCfgCtrl(); } /// diff --git a/TestBenchFramework/BenchControl/DataEntry/Standard24/Factory.cs b/TestBenchFramework/BenchControl/DataEntry/Standard24/Factory.cs index 11158d9cd..3c7d2f255 100644 --- a/TestBenchFramework/BenchControl/DataEntry/Standard24/Factory.cs +++ b/TestBenchFramework/BenchControl/DataEntry/Standard24/Factory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.DataEntry.Standard24 public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(EntryFormCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(EntryFormCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/DataEntry/Standard24/FactoryNoStartEnd.cs b/TestBenchFramework/BenchControl/DataEntry/Standard24/FactoryNoStartEnd.cs index e387d1036..272d0ff5e 100644 --- a/TestBenchFramework/BenchControl/DataEntry/Standard24/FactoryNoStartEnd.cs +++ b/TestBenchFramework/BenchControl/DataEntry/Standard24/FactoryNoStartEnd.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.DataEntry.Standard24 public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(EntryFormCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(EntryFormCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/DataEntry/Standard48/EntryFormCfg.cs b/TestBenchFramework/BenchControl/DataEntry/Standard48/EntryFormCfg.cs index b1b8fdae4..fa8be2ffc 100644 --- a/TestBenchFramework/BenchControl/DataEntry/Standard48/EntryFormCfg.cs +++ b/TestBenchFramework/BenchControl/DataEntry/Standard48/EntryFormCfg.cs @@ -11,6 +11,9 @@ namespace TBF.BenchControl.DataEntry.Standard48 { public class EntryFormCfg : ComponentCfgBase, Generic.IComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(EntryFormCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new EntryFormCfgCtrl(); } /// diff --git a/TestBenchFramework/BenchControl/DataEntry/Standard48/Factory.cs b/TestBenchFramework/BenchControl/DataEntry/Standard48/Factory.cs index 782cde639..53c6c500c 100644 --- a/TestBenchFramework/BenchControl/DataEntry/Standard48/Factory.cs +++ b/TestBenchFramework/BenchControl/DataEntry/Standard48/Factory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.DataEntry.Standard48 public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(EntryFormCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(EntryFormCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/DataEntry/Standard48/FactoryNoStartEnd.cs b/TestBenchFramework/BenchControl/DataEntry/Standard48/FactoryNoStartEnd.cs index 564bbc7ba..b120dec6a 100644 --- a/TestBenchFramework/BenchControl/DataEntry/Standard48/FactoryNoStartEnd.cs +++ b/TestBenchFramework/BenchControl/DataEntry/Standard48/FactoryNoStartEnd.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.DataEntry.Standard48 public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(EntryFormCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(EntryFormCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/DataEntry/Standard6/EntryFormCfg.cs b/TestBenchFramework/BenchControl/DataEntry/Standard6/EntryFormCfg.cs index aace68f5f..3a0f0c816 100644 --- a/TestBenchFramework/BenchControl/DataEntry/Standard6/EntryFormCfg.cs +++ b/TestBenchFramework/BenchControl/DataEntry/Standard6/EntryFormCfg.cs @@ -11,6 +11,9 @@ namespace TBF.BenchControl.DataEntry.Standard6 { public class EntryFormCfg : ComponentCfgBase, Generic.IComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(EntryFormCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new EntryFormCfgCtrl(); } /// diff --git a/TestBenchFramework/BenchControl/DataEntry/Standard6/Factory.cs b/TestBenchFramework/BenchControl/DataEntry/Standard6/Factory.cs index 38d6c41cb..e9a061f0e 100644 --- a/TestBenchFramework/BenchControl/DataEntry/Standard6/Factory.cs +++ b/TestBenchFramework/BenchControl/DataEntry/Standard6/Factory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.DataEntry.Standard6 public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(EntryFormCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(EntryFormCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/DataEntry/Standard6/FactoryNoStartEnd.cs b/TestBenchFramework/BenchControl/DataEntry/Standard6/FactoryNoStartEnd.cs index 9ea601379..017826233 100644 --- a/TestBenchFramework/BenchControl/DataEntry/Standard6/FactoryNoStartEnd.cs +++ b/TestBenchFramework/BenchControl/DataEntry/Standard6/FactoryNoStartEnd.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.DataEntry.Standard6 public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(EntryFormCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(EntryFormCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/DataEntry/WMStates/EntryFormCfg.cs b/TestBenchFramework/BenchControl/DataEntry/WMStates/EntryFormCfg.cs index 2005f3ada..cfa23ef48 100644 --- a/TestBenchFramework/BenchControl/DataEntry/WMStates/EntryFormCfg.cs +++ b/TestBenchFramework/BenchControl/DataEntry/WMStates/EntryFormCfg.cs @@ -11,6 +11,9 @@ namespace TBF.BenchControl.DataEntry.WMStates { public class EntryFormCfg : ComponentCfgBase, Generic.IComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(EntryFormCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new EntryFormCfgCtrl(); } /// Private parameterless constructor invoked by all other (public) constructors diff --git a/TestBenchFramework/BenchControl/DataEntry/WMStates/EntryFormFactory.cs b/TestBenchFramework/BenchControl/DataEntry/WMStates/EntryFormFactory.cs index ccab13cd2..fd77c2e22 100644 --- a/TestBenchFramework/BenchControl/DataEntry/WMStates/EntryFormFactory.cs +++ b/TestBenchFramework/BenchControl/DataEntry/WMStates/EntryFormFactory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.DataEntry.WMStates public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(EntryFormCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(EntryFormCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/DataEntry/iPerl/EntryFormCfg.cs b/TestBenchFramework/BenchControl/DataEntry/iPerl/EntryFormCfg.cs index 13275a530..5f54604d8 100644 --- a/TestBenchFramework/BenchControl/DataEntry/iPerl/EntryFormCfg.cs +++ b/TestBenchFramework/BenchControl/DataEntry/iPerl/EntryFormCfg.cs @@ -11,6 +11,9 @@ namespace TBF.BenchControl.DataEntry.iPerl { public class EntryFormCfg : ComponentCfgBase, Generic.IComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(EntryFormCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new EntryFormCfgCtrl(); } /// diff --git a/TestBenchFramework/BenchControl/DataEntry/iPerl/EntryFormFactory.cs b/TestBenchFramework/BenchControl/DataEntry/iPerl/EntryFormFactory.cs index 14495fa09..1a2f8ebfd 100644 --- a/TestBenchFramework/BenchControl/DataEntry/iPerl/EntryFormFactory.cs +++ b/TestBenchFramework/BenchControl/DataEntry/iPerl/EntryFormFactory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.DataEntry.iPerl public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(EntryFormCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(EntryFormCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/Dummy/Balance/Factory.cs b/TestBenchFramework/BenchControl/Dummy/Balance/Factory.cs index 8ada18dc4..e2f6097fa 100644 --- a/TestBenchFramework/BenchControl/Dummy/Balance/Factory.cs +++ b/TestBenchFramework/BenchControl/Dummy/Balance/Factory.cs @@ -21,7 +21,7 @@ namespace TBF.BenchControl.Dummy.Balance public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(TestMethodCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(TestMethodCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/Dummy/Diverter/Factory.cs b/TestBenchFramework/BenchControl/Dummy/Diverter/Factory.cs index 9afd2c8d5..b401dd639 100644 --- a/TestBenchFramework/BenchControl/Dummy/Diverter/Factory.cs +++ b/TestBenchFramework/BenchControl/Dummy/Diverter/Factory.cs @@ -21,7 +21,7 @@ namespace TBF.BenchControl.Dummy.Diverter public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(TestMethodCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(TestMethodCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/Dummy/FlowMeter/Factory.cs b/TestBenchFramework/BenchControl/Dummy/FlowMeter/Factory.cs index 4268e374a..0d4c76694 100644 --- a/TestBenchFramework/BenchControl/Dummy/FlowMeter/Factory.cs +++ b/TestBenchFramework/BenchControl/Dummy/FlowMeter/Factory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.Dummy.FlowMeter public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(FlowMeterCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(FlowMeterCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/Dummy/FlowMeter/FlowMeterCfg.cs b/TestBenchFramework/BenchControl/Dummy/FlowMeter/FlowMeterCfg.cs index f416a80e9..c3bfa42d2 100644 --- a/TestBenchFramework/BenchControl/Dummy/FlowMeter/FlowMeterCfg.cs +++ b/TestBenchFramework/BenchControl/Dummy/FlowMeter/FlowMeterCfg.cs @@ -11,6 +11,9 @@ namespace TBF.BenchControl.Dummy.FlowMeter { public class FlowMeterCfg : ComponentCfgBase, GenericDevices.ICalibInfoCfg, IComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(FlowMeterCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new FlowMeterCfgCtrl(); } /// diff --git a/TestBenchFramework/BenchControl/Dummy/RegulValve/Factory.cs b/TestBenchFramework/BenchControl/Dummy/RegulValve/Factory.cs index f92b0fcfa..ebee99b52 100644 --- a/TestBenchFramework/BenchControl/Dummy/RegulValve/Factory.cs +++ b/TestBenchFramework/BenchControl/Dummy/RegulValve/Factory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.Dummy.RegulValve public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(RegulValveCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(RegulValveCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/Dummy/RegulValve/RegulValveCfg.cs b/TestBenchFramework/BenchControl/Dummy/RegulValve/RegulValveCfg.cs index 140c2d9cb..14ecd4026 100644 --- a/TestBenchFramework/BenchControl/Dummy/RegulValve/RegulValveCfg.cs +++ b/TestBenchFramework/BenchControl/Dummy/RegulValve/RegulValveCfg.cs @@ -2,11 +2,15 @@ /// Copyright (c) 2017 Sensus Metering Systems /// using TBF.BenchControl.Generic; +using System.Xml.Serialization; namespace TBF.BenchControl.Dummy.RegulValve { public class RegulValveCfg : ComponentCfgBase, IComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(RegulValveCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new RegulValveCfgCtrl(); } /// diff --git a/TestBenchFramework/BenchControl/Dummy/Valve/Factory.cs b/TestBenchFramework/BenchControl/Dummy/Valve/Factory.cs index 7f5233a0b..fa10c5e4c 100644 --- a/TestBenchFramework/BenchControl/Dummy/Valve/Factory.cs +++ b/TestBenchFramework/BenchControl/Dummy/Valve/Factory.cs @@ -21,7 +21,7 @@ namespace TBF.BenchControl.Dummy.Valve public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(TestMethodCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(TestMethodCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/Elde/ControlBoardCfg.cs b/TestBenchFramework/BenchControl/Elde/ControlBoardCfg.cs index 7bf376246..9c1db0e82 100644 --- a/TestBenchFramework/BenchControl/Elde/ControlBoardCfg.cs +++ b/TestBenchFramework/BenchControl/Elde/ControlBoardCfg.cs @@ -10,6 +10,9 @@ namespace TBF.BenchControl.Elde { public class ControlBoardCfg : ComponentCfgBase, IComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(ControlBoardCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new ControlBoardCfgCtrl(); } /// diff --git a/TestBenchFramework/BenchControl/Elde/ControlBoardFactory.cs b/TestBenchFramework/BenchControl/Elde/ControlBoardFactory.cs index 4e98f6dd2..f43213c8b 100644 --- a/TestBenchFramework/BenchControl/Elde/ControlBoardFactory.cs +++ b/TestBenchFramework/BenchControl/Elde/ControlBoardFactory.cs @@ -28,7 +28,7 @@ namespace TBF.BenchControl.Elde public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(Elde.ControlBoardCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(Elde.ControlBoardCfg.Serializer, component, this); } public void ResetStaticProperties() { ControlBoardDev.ResetStaticProperties(); } diff --git a/TestBenchFramework/BenchControl/Elde/CoverTest/CoverTestCfg.cs b/TestBenchFramework/BenchControl/Elde/CoverTest/CoverTestCfg.cs index e6d48735d..e422fb6dc 100644 --- a/TestBenchFramework/BenchControl/Elde/CoverTest/CoverTestCfg.cs +++ b/TestBenchFramework/BenchControl/Elde/CoverTest/CoverTestCfg.cs @@ -11,6 +11,9 @@ namespace TBF.BenchControl.Elde.CoverTest { public class CoverTestCfg : ComponentCfgBase, IChildComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(CoverTestCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new CoverTestCfgCtrl(); } /// diff --git a/TestBenchFramework/BenchControl/Elde/CoverTest/Factory.cs b/TestBenchFramework/BenchControl/Elde/CoverTest/Factory.cs index 57a10bf89..b70255ed2 100644 --- a/TestBenchFramework/BenchControl/Elde/CoverTest/Factory.cs +++ b/TestBenchFramework/BenchControl/Elde/CoverTest/Factory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.Elde.CoverTest public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(CoverTestCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(CoverTestCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/Elde/Diverter/DiverterCfg.cs b/TestBenchFramework/BenchControl/Elde/Diverter/DiverterCfg.cs index ab7ddf6ad..83febd940 100644 --- a/TestBenchFramework/BenchControl/Elde/Diverter/DiverterCfg.cs +++ b/TestBenchFramework/BenchControl/Elde/Diverter/DiverterCfg.cs @@ -10,6 +10,9 @@ namespace TBF.BenchControl.Elde.Diverter { public class DiverterCfg : ComponentCfgBase, IChildComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(DiverterCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new DiverterCfgCtrl(); } /// diff --git a/TestBenchFramework/BenchControl/Elde/Diverter/DiverterFactory.cs b/TestBenchFramework/BenchControl/Elde/Diverter/DiverterFactory.cs index 012c6748d..1e44c3fef 100644 --- a/TestBenchFramework/BenchControl/Elde/Diverter/DiverterFactory.cs +++ b/TestBenchFramework/BenchControl/Elde/Diverter/DiverterFactory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.Elde.Diverter public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(DiverterCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(DiverterCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/Elde/FixedStartRegisterReader/RRProcedureParams.cs b/TestBenchFramework/BenchControl/Elde/FixedStartRegisterReader/RRProcedureParams.cs index f5cbf66c1..1234222c7 100644 --- a/TestBenchFramework/BenchControl/Elde/FixedStartRegisterReader/RRProcedureParams.cs +++ b/TestBenchFramework/BenchControl/Elde/FixedStartRegisterReader/RRProcedureParams.cs @@ -13,6 +13,9 @@ namespace TBF.BenchControl.Elde.FixedStartRegisterReader { public class RRProcedureParams : ProcedureParamsBase, IParamsProvider, IProcedureParams { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(RRProcedureParams) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public float PulsesPerLtr; /// Target low limit of the flow increase or decrease public override void InitializeAll() @@ -83,14 +86,13 @@ namespace TBF.BenchControl.Elde.FixedStartRegisterReader if (dbEntity == null) return; try { - RRProcedureParams tmp = (RRProcedureParams)(new XmlSerializer(typeof(RRProcedureParams))) - .Deserialize(new StringReader(dbEntity.Parameters)); + RRProcedureParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as RRProcedureParams; procedureParamsEntity = dbEntity; componentName = dbEntity.CmpntName; procedure = dbEntity.Procedure; - tmp.CopyContentTo(this); + if (tmp != null) tmp.CopyContentTo(this); } catch { diff --git a/TestBenchFramework/BenchControl/Elde/FixedStartRegisterReader/RegisterReaderCfg.cs b/TestBenchFramework/BenchControl/Elde/FixedStartRegisterReader/RegisterReaderCfg.cs index fe3b07a37..726ee015f 100644 --- a/TestBenchFramework/BenchControl/Elde/FixedStartRegisterReader/RegisterReaderCfg.cs +++ b/TestBenchFramework/BenchControl/Elde/FixedStartRegisterReader/RegisterReaderCfg.cs @@ -12,6 +12,9 @@ namespace TBF.BenchControl.Elde.FixedStartRegisterReader { public class RegisterReaderCfg : ComponentCfgBase, Generic.IChildComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(RegisterReaderCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new RegisterReaderCfgCtrl(); } /// Procedure parameters diff --git a/TestBenchFramework/BenchControl/Elde/FixedStartRegisterReader/RegisterReaderFactory.cs b/TestBenchFramework/BenchControl/Elde/FixedStartRegisterReader/RegisterReaderFactory.cs index 25d593013..00dde1c89 100644 --- a/TestBenchFramework/BenchControl/Elde/FixedStartRegisterReader/RegisterReaderFactory.cs +++ b/TestBenchFramework/BenchControl/Elde/FixedStartRegisterReader/RegisterReaderFactory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.Elde.FixedStartRegisterReader public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(RegisterReaderCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(RegisterReaderCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/Elde/FlowMeter/FlowMeterCfg.cs b/TestBenchFramework/BenchControl/Elde/FlowMeter/FlowMeterCfg.cs index 289304847..b2efda835 100644 --- a/TestBenchFramework/BenchControl/Elde/FlowMeter/FlowMeterCfg.cs +++ b/TestBenchFramework/BenchControl/Elde/FlowMeter/FlowMeterCfg.cs @@ -11,6 +11,9 @@ namespace TBF.BenchControl.Elde.FlowMeter { public class FlowMeterCfg : ComponentCfgBase, GenericDevices.ICalibInfoCfg, IChildComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(FlowMeterCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new FlowMeterCfgCtrl(); } /// diff --git a/TestBenchFramework/BenchControl/Elde/FlowMeter/FlowMeterFactory.cs b/TestBenchFramework/BenchControl/Elde/FlowMeter/FlowMeterFactory.cs index 03c9da742..c43f1ae10 100644 --- a/TestBenchFramework/BenchControl/Elde/FlowMeter/FlowMeterFactory.cs +++ b/TestBenchFramework/BenchControl/Elde/FlowMeter/FlowMeterFactory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.Elde.FlowMeter public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(FlowMeterCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(FlowMeterCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/Elde/FlowMeterTwins/FlowMeterCfg.cs b/TestBenchFramework/BenchControl/Elde/FlowMeterTwins/FlowMeterCfg.cs index 595ad22e8..31c03ec76 100644 --- a/TestBenchFramework/BenchControl/Elde/FlowMeterTwins/FlowMeterCfg.cs +++ b/TestBenchFramework/BenchControl/Elde/FlowMeterTwins/FlowMeterCfg.cs @@ -11,6 +11,9 @@ namespace TBF.BenchControl.Elde.FlowMeterTwins { public class FlowMeterCfg : ComponentCfgBase, Generic.IChildComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(FlowMeterCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new FlowMeterCfgCtrl(); } /// diff --git a/TestBenchFramework/BenchControl/Elde/FlowMeterTwins/FlowMeterFactory.cs b/TestBenchFramework/BenchControl/Elde/FlowMeterTwins/FlowMeterFactory.cs index 5f5f7d900..c81361aef 100644 --- a/TestBenchFramework/BenchControl/Elde/FlowMeterTwins/FlowMeterFactory.cs +++ b/TestBenchFramework/BenchControl/Elde/FlowMeterTwins/FlowMeterFactory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.Elde.FlowMeterTwins public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(FlowMeterCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(FlowMeterCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/Elde/PressureMeter/PressureMeterCfg.cs b/TestBenchFramework/BenchControl/Elde/PressureMeter/PressureMeterCfg.cs index d0c616cbe..d9608d776 100644 --- a/TestBenchFramework/BenchControl/Elde/PressureMeter/PressureMeterCfg.cs +++ b/TestBenchFramework/BenchControl/Elde/PressureMeter/PressureMeterCfg.cs @@ -11,6 +11,9 @@ namespace TBF.BenchControl.Elde.PressureMeter { public class PressureMeterCfg : ComponentCfgBase, Generic.IChildComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(PressureMeterCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new PressureMeterCfgCtrl(); } /// diff --git a/TestBenchFramework/BenchControl/Elde/PressureMeter/PressureMeterFactory.cs b/TestBenchFramework/BenchControl/Elde/PressureMeter/PressureMeterFactory.cs index c1bf2c8ab..993c10ec6 100644 --- a/TestBenchFramework/BenchControl/Elde/PressureMeter/PressureMeterFactory.cs +++ b/TestBenchFramework/BenchControl/Elde/PressureMeter/PressureMeterFactory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.Elde.PressureMeter public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(PressureMeterCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(PressureMeterCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/Elde/PressureMeterInternal/PressureMeterCfg.cs b/TestBenchFramework/BenchControl/Elde/PressureMeterInternal/PressureMeterCfg.cs index 48f4af8ea..b4d9ffbfa 100644 --- a/TestBenchFramework/BenchControl/Elde/PressureMeterInternal/PressureMeterCfg.cs +++ b/TestBenchFramework/BenchControl/Elde/PressureMeterInternal/PressureMeterCfg.cs @@ -11,6 +11,9 @@ namespace TBF.BenchControl.Elde.PressureMeterInternal { public class PressureMeterCfg : ComponentCfgBase, IChildComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(PressureMeterCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new PressureMeterCfgCtrl(); } /// diff --git a/TestBenchFramework/BenchControl/Elde/PressureMeterInternal/PressureMeterFactory.cs b/TestBenchFramework/BenchControl/Elde/PressureMeterInternal/PressureMeterFactory.cs index 0f542ea08..91959c277 100644 --- a/TestBenchFramework/BenchControl/Elde/PressureMeterInternal/PressureMeterFactory.cs +++ b/TestBenchFramework/BenchControl/Elde/PressureMeterInternal/PressureMeterFactory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.Elde.PressureMeterInternal public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(PressureMeterCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(PressureMeterCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/Elde/Pump/PumpCfg.cs b/TestBenchFramework/BenchControl/Elde/Pump/PumpCfg.cs index 0b6a680d2..2a7c1c6cd 100644 --- a/TestBenchFramework/BenchControl/Elde/Pump/PumpCfg.cs +++ b/TestBenchFramework/BenchControl/Elde/Pump/PumpCfg.cs @@ -10,6 +10,9 @@ namespace TBF.BenchControl.Elde.Pump { public class PumpCfg : ComponentCfgBase, IChildComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(PumpCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new PumpCfgCtrl(); } /// diff --git a/TestBenchFramework/BenchControl/Elde/Pump/PumpFactory.cs b/TestBenchFramework/BenchControl/Elde/Pump/PumpFactory.cs index e445a88a3..05a5f3bd5 100644 --- a/TestBenchFramework/BenchControl/Elde/Pump/PumpFactory.cs +++ b/TestBenchFramework/BenchControl/Elde/Pump/PumpFactory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.Elde.Pump public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(PumpCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(PumpCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/Elde/PumpTandem/PumpCfg.cs b/TestBenchFramework/BenchControl/Elde/PumpTandem/PumpCfg.cs index dc0cb2e74..bee933568 100644 --- a/TestBenchFramework/BenchControl/Elde/PumpTandem/PumpCfg.cs +++ b/TestBenchFramework/BenchControl/Elde/PumpTandem/PumpCfg.cs @@ -10,6 +10,9 @@ namespace TBF.BenchControl.Elde.PumpTandem { public class PumpCfg : ComponentCfgBase, IChildComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(PumpCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new PumpCfgCtrl(); } /// diff --git a/TestBenchFramework/BenchControl/Elde/PumpTandem/PumpFactory.cs b/TestBenchFramework/BenchControl/Elde/PumpTandem/PumpFactory.cs index 0a151dbb4..7bf37b0fc 100644 --- a/TestBenchFramework/BenchControl/Elde/PumpTandem/PumpFactory.cs +++ b/TestBenchFramework/BenchControl/Elde/PumpTandem/PumpFactory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.Elde.PumpTandem public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(PumpCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(PumpCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/Elde/PumpWithFM/PumpCfg.cs b/TestBenchFramework/BenchControl/Elde/PumpWithFM/PumpCfg.cs index 0e32c0d74..4165fa1ff 100644 --- a/TestBenchFramework/BenchControl/Elde/PumpWithFM/PumpCfg.cs +++ b/TestBenchFramework/BenchControl/Elde/PumpWithFM/PumpCfg.cs @@ -10,6 +10,9 @@ namespace TBF.BenchControl.Elde.PumpWithFM { public class PumpCfg : ComponentCfgBase, IChildComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(PumpCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new PumpCfgCtrl(); } /// diff --git a/TestBenchFramework/BenchControl/Elde/PumpWithFM/PumpFactory.cs b/TestBenchFramework/BenchControl/Elde/PumpWithFM/PumpFactory.cs index 566ce6a3b..dec81e7d5 100644 --- a/TestBenchFramework/BenchControl/Elde/PumpWithFM/PumpFactory.cs +++ b/TestBenchFramework/BenchControl/Elde/PumpWithFM/PumpFactory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.Elde.PumpWithFM public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(PumpCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(PumpCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/Elde/RegisterReader/Factory.cs b/TestBenchFramework/BenchControl/Elde/RegisterReader/Factory.cs index 01e454193..833b83aab 100644 --- a/TestBenchFramework/BenchControl/Elde/RegisterReader/Factory.cs +++ b/TestBenchFramework/BenchControl/Elde/RegisterReader/Factory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.Elde.RegisterReader public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(RegisterReaderCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(RegisterReaderCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/Elde/RegisterReader/RRProcedureParams.cs b/TestBenchFramework/BenchControl/Elde/RegisterReader/RRProcedureParams.cs index 6e6a0a300..50bafcba3 100644 --- a/TestBenchFramework/BenchControl/Elde/RegisterReader/RRProcedureParams.cs +++ b/TestBenchFramework/BenchControl/Elde/RegisterReader/RRProcedureParams.cs @@ -13,6 +13,9 @@ namespace TBF.BenchControl.Elde.RegisterReader { public class RRProcedureParams : ProcedureParamsBase, IParamsProvider, IProcedureParams { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(RRProcedureParams) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public float PulsesPerLtr; /// [l^-1] public override void InitializeAll() @@ -83,14 +86,13 @@ namespace TBF.BenchControl.Elde.RegisterReader if (dbEntity == null) return; try { - RRProcedureParams tmp = (RRProcedureParams)(new XmlSerializer(typeof(RRProcedureParams))) - .Deserialize(new StringReader(dbEntity.Parameters)); + RRProcedureParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as RRProcedureParams; procedureParamsEntity = dbEntity; componentName = dbEntity.CmpntName; procedure = dbEntity.Procedure; - tmp.CopyContentTo(this); + if (tmp != null) tmp.CopyContentTo(this); } catch { diff --git a/TestBenchFramework/BenchControl/Elde/RegisterReader/RegisterReaderCfg.cs b/TestBenchFramework/BenchControl/Elde/RegisterReader/RegisterReaderCfg.cs index 566d81bf3..bb640f21d 100644 --- a/TestBenchFramework/BenchControl/Elde/RegisterReader/RegisterReaderCfg.cs +++ b/TestBenchFramework/BenchControl/Elde/RegisterReader/RegisterReaderCfg.cs @@ -9,6 +9,9 @@ namespace TBF.BenchControl.Elde.RegisterReader { public class RegisterReaderCfg : ComponentCfgBase, Generic.IChildComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(RegisterReaderCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new RegisterReaderCfgCtrl(); } /// diff --git a/TestBenchFramework/BenchControl/Elde/RegulValve/RegulValveCfg.cs b/TestBenchFramework/BenchControl/Elde/RegulValve/RegulValveCfg.cs index 592e57e2c..64bca96bd 100644 --- a/TestBenchFramework/BenchControl/Elde/RegulValve/RegulValveCfg.cs +++ b/TestBenchFramework/BenchControl/Elde/RegulValve/RegulValveCfg.cs @@ -11,6 +11,9 @@ namespace TBF.BenchControl.Elde.RegulValve { public class RegulValveCfg : ComponentCfgBase, IChildComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(RegulValveCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new RegulValveCfgCtrl(); } /// diff --git a/TestBenchFramework/BenchControl/Elde/RegulValve/RegulValveFactory.cs b/TestBenchFramework/BenchControl/Elde/RegulValve/RegulValveFactory.cs index 79527199b..a682bf5b9 100644 --- a/TestBenchFramework/BenchControl/Elde/RegulValve/RegulValveFactory.cs +++ b/TestBenchFramework/BenchControl/Elde/RegulValve/RegulValveFactory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.Elde.RegulValve public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(RegulValveCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(RegulValveCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/Elde/RegulValveTandem/RegulValveTandemCfg.cs b/TestBenchFramework/BenchControl/Elde/RegulValveTandem/RegulValveTandemCfg.cs index 345733aba..5e6d853a4 100644 --- a/TestBenchFramework/BenchControl/Elde/RegulValveTandem/RegulValveTandemCfg.cs +++ b/TestBenchFramework/BenchControl/Elde/RegulValveTandem/RegulValveTandemCfg.cs @@ -11,6 +11,9 @@ namespace TBF.BenchControl.Elde.RegulValveTandem { public class RegulValveTandemCfg : ComponentCfgBase, IChildComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(RegulValveTandemCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new RegulValveTandemCfgCtrl(); } /// diff --git a/TestBenchFramework/BenchControl/Elde/RegulValveTandem/RegulValveTandemFactory.cs b/TestBenchFramework/BenchControl/Elde/RegulValveTandem/RegulValveTandemFactory.cs index 34cda1219..75b751462 100644 --- a/TestBenchFramework/BenchControl/Elde/RegulValveTandem/RegulValveTandemFactory.cs +++ b/TestBenchFramework/BenchControl/Elde/RegulValveTandem/RegulValveTandemFactory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.Elde.RegulValveTandem public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(RegulValveTandemCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(RegulValveTandemCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/Elde/TempMeter/TempMeterCfg.cs b/TestBenchFramework/BenchControl/Elde/TempMeter/TempMeterCfg.cs index a539bbe3f..3b01b52a5 100644 --- a/TestBenchFramework/BenchControl/Elde/TempMeter/TempMeterCfg.cs +++ b/TestBenchFramework/BenchControl/Elde/TempMeter/TempMeterCfg.cs @@ -11,6 +11,9 @@ namespace TBF.BenchControl.Elde.TempMeter { public class TempMeterCfg : ComponentCfgBase, IChildComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TempMeterCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new TempMeterCfgCtrl(); } /// diff --git a/TestBenchFramework/BenchControl/Elde/TempMeter/TempMeterFactory.cs b/TestBenchFramework/BenchControl/Elde/TempMeter/TempMeterFactory.cs index bd4414053..de91443a4 100644 --- a/TestBenchFramework/BenchControl/Elde/TempMeter/TempMeterFactory.cs +++ b/TestBenchFramework/BenchControl/Elde/TempMeter/TempMeterFactory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.Elde.TempMeter public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(TempMeterCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(TempMeterCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/Elde/TempMeterInternal/TempMeterCfg.cs b/TestBenchFramework/BenchControl/Elde/TempMeterInternal/TempMeterCfg.cs index a6b6cc603..fa82151e5 100644 --- a/TestBenchFramework/BenchControl/Elde/TempMeterInternal/TempMeterCfg.cs +++ b/TestBenchFramework/BenchControl/Elde/TempMeterInternal/TempMeterCfg.cs @@ -12,6 +12,9 @@ namespace TBF.BenchControl.Elde.TempMeterInternal { public class TempMeterCfg : ComponentCfgBase, IChildComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TempMeterCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new TempMeterCfgCtrl(); } /// diff --git a/TestBenchFramework/BenchControl/Elde/TempMeterInternal/TempMeterFactory.cs b/TestBenchFramework/BenchControl/Elde/TempMeterInternal/TempMeterFactory.cs index 15d6269e2..c6c1d4ede 100644 --- a/TestBenchFramework/BenchControl/Elde/TempMeterInternal/TempMeterFactory.cs +++ b/TestBenchFramework/BenchControl/Elde/TempMeterInternal/TempMeterFactory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.Elde.TempMeterInternal public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(TempMeterCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(TempMeterCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/Elde/Valve/ValveCfg.cs b/TestBenchFramework/BenchControl/Elde/Valve/ValveCfg.cs index c47d966e6..54cb76149 100644 --- a/TestBenchFramework/BenchControl/Elde/Valve/ValveCfg.cs +++ b/TestBenchFramework/BenchControl/Elde/Valve/ValveCfg.cs @@ -10,6 +10,9 @@ namespace TBF.BenchControl.Elde.Valve { public class ValveCfg : ComponentCfgBase, IChildComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(ValveCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new ValveCfgCtrl(); } /// diff --git a/TestBenchFramework/BenchControl/Elde/Valve/ValveFactory.cs b/TestBenchFramework/BenchControl/Elde/Valve/ValveFactory.cs index 2f0808133..cd1b5a071 100644 --- a/TestBenchFramework/BenchControl/Elde/Valve/ValveFactory.cs +++ b/TestBenchFramework/BenchControl/Elde/Valve/ValveFactory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.Elde.Valve public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(ValveCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(ValveCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/Elde/ValveEx/ValveCfg.cs b/TestBenchFramework/BenchControl/Elde/ValveEx/ValveCfg.cs index f1eae1d4f..c6b8ad59a 100644 --- a/TestBenchFramework/BenchControl/Elde/ValveEx/ValveCfg.cs +++ b/TestBenchFramework/BenchControl/Elde/ValveEx/ValveCfg.cs @@ -10,6 +10,9 @@ namespace TBF.BenchControl.Elde.ValveEx { public class ValveCfg : ComponentCfgBase, IComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(ValveCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new ValveCfgCtrl(); } /// diff --git a/TestBenchFramework/BenchControl/Elde/ValveEx/ValveFactory.cs b/TestBenchFramework/BenchControl/Elde/ValveEx/ValveFactory.cs index 993deaecf..3ad803c14 100644 --- a/TestBenchFramework/BenchControl/Elde/ValveEx/ValveFactory.cs +++ b/TestBenchFramework/BenchControl/Elde/ValveEx/ValveFactory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.Elde.ValveEx public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(ValveCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(ValveCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/Keithley/Multimeter_2010_RS232/Factory.cs b/TestBenchFramework/BenchControl/Keithley/Multimeter_2010_RS232/Factory.cs index 8d0954da8..3be74fd37 100644 --- a/TestBenchFramework/BenchControl/Keithley/Multimeter_2010_RS232/Factory.cs +++ b/TestBenchFramework/BenchControl/Keithley/Multimeter_2010_RS232/Factory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.Keithley.Multimeter_2010_RS232 public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(MultimeterCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(MultimeterCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/Keithley/Multimeter_2010_RS232/MultimeterCfg.cs b/TestBenchFramework/BenchControl/Keithley/Multimeter_2010_RS232/MultimeterCfg.cs index c00b22a81..10f34fd2c 100644 --- a/TestBenchFramework/BenchControl/Keithley/Multimeter_2010_RS232/MultimeterCfg.cs +++ b/TestBenchFramework/BenchControl/Keithley/Multimeter_2010_RS232/MultimeterCfg.cs @@ -3,12 +3,16 @@ /// using System; using System.IO.Ports; +using System.Xml.Serialization; using TBF.BenchControl.Generic; namespace TBF.BenchControl.Keithley.Multimeter_2010_RS232 { public class MultimeterCfg : ComponentCfgBase, Generic.IComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(MultimeterCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new MultimeterCfgCtrl(); } /// diff --git a/TestBenchFramework/BenchControl/Keithley/TempMeter/Factory.cs b/TestBenchFramework/BenchControl/Keithley/TempMeter/Factory.cs index 0e3e607e8..d9ea3e3ca 100644 --- a/TestBenchFramework/BenchControl/Keithley/TempMeter/Factory.cs +++ b/TestBenchFramework/BenchControl/Keithley/TempMeter/Factory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.Keithley.TempMeter public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(TempMeterCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(TempMeterCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/Keithley/TempMeter/TempMeterCfg.cs b/TestBenchFramework/BenchControl/Keithley/TempMeter/TempMeterCfg.cs index 7d58afba1..6f5be0e34 100644 --- a/TestBenchFramework/BenchControl/Keithley/TempMeter/TempMeterCfg.cs +++ b/TestBenchFramework/BenchControl/Keithley/TempMeter/TempMeterCfg.cs @@ -11,6 +11,9 @@ namespace TBF.BenchControl.Keithley.TempMeter { public class TempMeterCfg : ComponentCfgBase, IChildComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TempMeterCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new TempMeterCfgCtrl(); } /// diff --git a/TestBenchFramework/BenchControl/MettlerToledo/Multi/BalanceCfg.cs b/TestBenchFramework/BenchControl/MettlerToledo/Multi/BalanceCfg.cs index 53f570a48..18e213d3f 100644 --- a/TestBenchFramework/BenchControl/MettlerToledo/Multi/BalanceCfg.cs +++ b/TestBenchFramework/BenchControl/MettlerToledo/Multi/BalanceCfg.cs @@ -12,6 +12,9 @@ namespace TBF.BenchControl.MettlerToledo.Multi { public class BalanceCfg : ComponentCfgBase, GenericDevices.IScaleCfg, GenericDevices.ICalibInfoCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(BalanceCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new BalanceCfgCtrl(); } /// diff --git a/TestBenchFramework/BenchControl/MettlerToledo/Multi/BalanceFactory.cs b/TestBenchFramework/BenchControl/MettlerToledo/Multi/BalanceFactory.cs index 7767ef1a1..76a70c31f 100644 --- a/TestBenchFramework/BenchControl/MettlerToledo/Multi/BalanceFactory.cs +++ b/TestBenchFramework/BenchControl/MettlerToledo/Multi/BalanceFactory.cs @@ -28,7 +28,7 @@ namespace TBF.BenchControl.MettlerToledo.Multi public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(BalanceCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(BalanceCfg.Serializer, component, this); } public void ResetStaticProperties() { BalanceDev.ResetStaticProperties(); } diff --git a/TestBenchFramework/BenchControl/MettlerToledo/Standard/BalanceCfg.cs b/TestBenchFramework/BenchControl/MettlerToledo/Standard/BalanceCfg.cs index 531235e2b..e1dc5dce6 100644 --- a/TestBenchFramework/BenchControl/MettlerToledo/Standard/BalanceCfg.cs +++ b/TestBenchFramework/BenchControl/MettlerToledo/Standard/BalanceCfg.cs @@ -12,6 +12,9 @@ namespace TBF.BenchControl.MettlerToledo.Standard { public class BalanceCfg : ComponentCfgBase, GenericDevices.IScaleCfg, GenericDevices.ICalibInfoCfg, GenericDevices.ITankDrainingCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(BalanceCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new BalanceCfgCtrl(); } /// diff --git a/TestBenchFramework/BenchControl/MettlerToledo/Standard/BalanceFactory.cs b/TestBenchFramework/BenchControl/MettlerToledo/Standard/BalanceFactory.cs index 6c7cc287b..a80df9036 100644 --- a/TestBenchFramework/BenchControl/MettlerToledo/Standard/BalanceFactory.cs +++ b/TestBenchFramework/BenchControl/MettlerToledo/Standard/BalanceFactory.cs @@ -28,7 +28,7 @@ namespace TBF.BenchControl.MettlerToledo.Standard public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(BalanceCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(BalanceCfg.Serializer, component, this); } public void ResetStaticProperties() { BalanceDev.ResetStaticProperties(); } diff --git a/TestBenchFramework/BenchControl/MettlerToledo/Standard/BalanceNewFactory.cs b/TestBenchFramework/BenchControl/MettlerToledo/Standard/BalanceNewFactory.cs index 034428594..036bae569 100644 --- a/TestBenchFramework/BenchControl/MettlerToledo/Standard/BalanceNewFactory.cs +++ b/TestBenchFramework/BenchControl/MettlerToledo/Standard/BalanceNewFactory.cs @@ -28,7 +28,7 @@ namespace TBF.BenchControl.MettlerToledo.Standard public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(BalanceCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(BalanceCfg.Serializer, component, this); } public void ResetStaticProperties() { BalanceNewDev.ResetStaticProperties(); } diff --git a/TestBenchFramework/BenchControl/MettlerToledo/Standard/BalanceOldFactory.cs b/TestBenchFramework/BenchControl/MettlerToledo/Standard/BalanceOldFactory.cs index dc1da032b..4734377e9 100644 --- a/TestBenchFramework/BenchControl/MettlerToledo/Standard/BalanceOldFactory.cs +++ b/TestBenchFramework/BenchControl/MettlerToledo/Standard/BalanceOldFactory.cs @@ -28,7 +28,7 @@ namespace TBF.BenchControl.MettlerToledo.Standard public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(BalanceCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(BalanceCfg.Serializer, component, this); } public void ResetStaticProperties() { BalanceOld.ResetStaticProperties(); } diff --git a/TestBenchFramework/BenchControl/Modbus/Common/Factory.cs b/TestBenchFramework/BenchControl/Modbus/Common/Factory.cs index 007f1307b..556981f0d 100644 --- a/TestBenchFramework/BenchControl/Modbus/Common/Factory.cs +++ b/TestBenchFramework/BenchControl/Modbus/Common/Factory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.Modbus.Common public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(ModbusCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(ModbusCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/Modbus/Common/ModbusCfg.cs b/TestBenchFramework/BenchControl/Modbus/Common/ModbusCfg.cs index fc35b3c0f..50236fdbc 100644 --- a/TestBenchFramework/BenchControl/Modbus/Common/ModbusCfg.cs +++ b/TestBenchFramework/BenchControl/Modbus/Common/ModbusCfg.cs @@ -11,6 +11,9 @@ namespace TBF.BenchControl.Modbus.Common { public class ModbusCfg : ComponentCfgBase, Generic.IComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(ModbusCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new ModbusCfgCtrl(); } /// diff --git a/TestBenchFramework/BenchControl/Modbus/Easytherm/EasythermCfg.cs b/TestBenchFramework/BenchControl/Modbus/Easytherm/EasythermCfg.cs index 8a2b74730..40b4eedd5 100644 --- a/TestBenchFramework/BenchControl/Modbus/Easytherm/EasythermCfg.cs +++ b/TestBenchFramework/BenchControl/Modbus/Easytherm/EasythermCfg.cs @@ -10,6 +10,9 @@ namespace TBF.BenchControl.Modbus.Easytherm { public class EasythermCfg : ComponentCfgBase, Generic.IChildComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(EasythermCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new EasythermCfgCtrl(); } /// diff --git a/TestBenchFramework/BenchControl/Modbus/Easytherm/Factory.cs b/TestBenchFramework/BenchControl/Modbus/Easytherm/Factory.cs index 47af7614c..4960c1083 100644 --- a/TestBenchFramework/BenchControl/Modbus/Easytherm/Factory.cs +++ b/TestBenchFramework/BenchControl/Modbus/Easytherm/Factory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.Modbus.Easytherm public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(EasythermCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(EasythermCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/Modbus/Easytherm/ProcParams.cs b/TestBenchFramework/BenchControl/Modbus/Easytherm/ProcParams.cs index 92aa8cade..a336069f3 100644 --- a/TestBenchFramework/BenchControl/Modbus/Easytherm/ProcParams.cs +++ b/TestBenchFramework/BenchControl/Modbus/Easytherm/ProcParams.cs @@ -11,6 +11,9 @@ namespace TBF.BenchControl.Modbus.Easytherm { public class ProcParams : ProcedureParamsBase, IParamsProvider, IProcedureParams { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(ProcParams) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public float RequiredTemp; /// [°C] target temperature for a temperature controller or 0=not communicated to the controller @@ -101,14 +104,13 @@ namespace TBF.BenchControl.Modbus.Easytherm if (dbEntity == null) return; try { - ProcParams tmp = (ProcParams)(new XmlSerializer(typeof(ProcParams))) - .Deserialize(new StringReader(dbEntity.Parameters)); + ProcParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as ProcParams; procedureParamsEntity = dbEntity; componentName = dbEntity.CmpntName; procedure = dbEntity.Procedure; - tmp.CopyContentTo(this); + if (tmp != null) tmp.CopyContentTo(this); } catch { diff --git a/TestBenchFramework/BenchControl/Modbus/PressureMeter/Meret/Factory.cs b/TestBenchFramework/BenchControl/Modbus/PressureMeter/Meret/Factory.cs index ed51286b3..ba6fdfc3f 100644 --- a/TestBenchFramework/BenchControl/Modbus/PressureMeter/Meret/Factory.cs +++ b/TestBenchFramework/BenchControl/Modbus/PressureMeter/Meret/Factory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.Modbus.PressureMeter.Meret public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(PressureMeterCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(PressureMeterCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/Modbus/PressureMeter/Meret/PressureMeterCfg.cs b/TestBenchFramework/BenchControl/Modbus/PressureMeter/Meret/PressureMeterCfg.cs index e6d2a921c..02367a19f 100644 --- a/TestBenchFramework/BenchControl/Modbus/PressureMeter/Meret/PressureMeterCfg.cs +++ b/TestBenchFramework/BenchControl/Modbus/PressureMeter/Meret/PressureMeterCfg.cs @@ -11,6 +11,9 @@ namespace TBF.BenchControl.Modbus.PressureMeter.Meret { public class PressureMeterCfg : ComponentCfgBase, Generic.IChildComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(PressureMeterCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new PressureMeterCfgCtrl(); } /// diff --git a/TestBenchFramework/BenchControl/Modbus/QuidoRS/Factory.cs b/TestBenchFramework/BenchControl/Modbus/QuidoRS/Factory.cs index 076c84603..59d8e7523 100644 --- a/TestBenchFramework/BenchControl/Modbus/QuidoRS/Factory.cs +++ b/TestBenchFramework/BenchControl/Modbus/QuidoRS/Factory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.Modbus.QuidoRS public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(QuidoRSCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(QuidoRSCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/Modbus/QuidoRS/QuidoRSCfg.cs b/TestBenchFramework/BenchControl/Modbus/QuidoRS/QuidoRSCfg.cs index c87a1f482..eddcbb7f6 100644 --- a/TestBenchFramework/BenchControl/Modbus/QuidoRS/QuidoRSCfg.cs +++ b/TestBenchFramework/BenchControl/Modbus/QuidoRS/QuidoRSCfg.cs @@ -11,6 +11,9 @@ namespace TBF.BenchControl.Modbus.QuidoRS { public class QuidoRSCfg : ComponentCfgBase, Generic.IChildComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(QuidoRSCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new QuidoRSCfgCtrl(); } /// diff --git a/TestBenchFramework/BenchControl/Modbus/TankSelector/Factory.cs b/TestBenchFramework/BenchControl/Modbus/TankSelector/Factory.cs index 98eb629ca..6ea6bbbea 100644 --- a/TestBenchFramework/BenchControl/Modbus/TankSelector/Factory.cs +++ b/TestBenchFramework/BenchControl/Modbus/TankSelector/Factory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.Modbus.TankSelector public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(TankSelectorCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(TankSelectorCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/Modbus/TankSelector/TankSelectorCfg.cs b/TestBenchFramework/BenchControl/Modbus/TankSelector/TankSelectorCfg.cs index 707996435..37e2fcc6f 100644 --- a/TestBenchFramework/BenchControl/Modbus/TankSelector/TankSelectorCfg.cs +++ b/TestBenchFramework/BenchControl/Modbus/TankSelector/TankSelectorCfg.cs @@ -1,12 +1,16 @@ /// /// Copyright (c) 2017 Sensus Metering Systems /// +using System.Xml.Serialization; using TBF.BenchControl.Generic; namespace TBF.BenchControl.Modbus.TankSelector { public class TankSelectorCfg : ComponentCfgBase, Generic.IChildComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TankSelectorCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new TankSelectorCfgCtrl(); } /// diff --git a/TestBenchFramework/BenchControl/Network/Adapter/Factory.cs b/TestBenchFramework/BenchControl/Network/Adapter/Factory.cs index a3f0f2ea1..e995d0243 100644 --- a/TestBenchFramework/BenchControl/Network/Adapter/Factory.cs +++ b/TestBenchFramework/BenchControl/Network/Adapter/Factory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.Network.Adapter public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(NetadapterCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(NetadapterCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/Network/Adapter/NetadapterCfg.cs b/TestBenchFramework/BenchControl/Network/Adapter/NetadapterCfg.cs index 819f70119..cf9241ed1 100644 --- a/TestBenchFramework/BenchControl/Network/Adapter/NetadapterCfg.cs +++ b/TestBenchFramework/BenchControl/Network/Adapter/NetadapterCfg.cs @@ -1,12 +1,16 @@ /// /// Copyright (c) 2017 Sensus Metering Systems /// +using System.Xml.Serialization; using TBF.BenchControl.Generic; namespace TBF.BenchControl.Network.Adapter { public class NetadapterCfg : ComponentCfgBase, Generic.IComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(NetadapterCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new NetadapterCfgCtrl(); } diff --git a/TestBenchFramework/BenchControl/Network/Camera/CLP1611/CameraCfg.cs b/TestBenchFramework/BenchControl/Network/Camera/CLP1611/CameraCfg.cs index d230a79fc..bcdf36504 100644 --- a/TestBenchFramework/BenchControl/Network/Camera/CLP1611/CameraCfg.cs +++ b/TestBenchFramework/BenchControl/Network/Camera/CLP1611/CameraCfg.cs @@ -3,6 +3,7 @@ /// using System.Net; using System.Net.Sockets; +using System.Xml.Serialization; using TBF.BenchControl.Generic; using TBF.Resources; @@ -10,6 +11,9 @@ namespace TBF.BenchControl.Network.Camera.CLP1611 { public class CameraCfg : ComponentCfgBase, IChildComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(CameraCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new CameraCfgCtrl(); } /// diff --git a/TestBenchFramework/BenchControl/Network/Camera/CLP1611/Factory.cs b/TestBenchFramework/BenchControl/Network/Camera/CLP1611/Factory.cs index 86441d4a7..29781f911 100644 --- a/TestBenchFramework/BenchControl/Network/Camera/CLP1611/Factory.cs +++ b/TestBenchFramework/BenchControl/Network/Camera/CLP1611/Factory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.Network.Camera.CLP1611 public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(CameraCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(CameraCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/Network/Camera/Display/DisplayCfg.cs b/TestBenchFramework/BenchControl/Network/Camera/Display/DisplayCfg.cs index f20ffebd1..fe871331c 100644 --- a/TestBenchFramework/BenchControl/Network/Camera/Display/DisplayCfg.cs +++ b/TestBenchFramework/BenchControl/Network/Camera/Display/DisplayCfg.cs @@ -9,6 +9,9 @@ namespace TBF.BenchControl.Network.Camera.Display { public class DisplayCfg : ComponentCfgBase, IComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(DisplayCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new DisplayCfgCtrl(); } /// diff --git a/TestBenchFramework/BenchControl/Network/Camera/Display/Factory.cs b/TestBenchFramework/BenchControl/Network/Camera/Display/Factory.cs index 324a9de4b..49b65fafc 100644 --- a/TestBenchFramework/BenchControl/Network/Camera/Display/Factory.cs +++ b/TestBenchFramework/BenchControl/Network/Camera/Display/Factory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.Network.Camera.Display public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(DisplayCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(DisplayCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/Network/Camera/Roi/Factory.cs b/TestBenchFramework/BenchControl/Network/Camera/Roi/Factory.cs index 23460bae7..4d3086133 100644 --- a/TestBenchFramework/BenchControl/Network/Camera/Roi/Factory.cs +++ b/TestBenchFramework/BenchControl/Network/Camera/Roi/Factory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.Network.Camera.Roi public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(RoiCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(RoiCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/Network/Camera/Roi/ProcedureParams.cs b/TestBenchFramework/BenchControl/Network/Camera/Roi/ProcedureParams.cs index bef4df69e..914febddb 100644 --- a/TestBenchFramework/BenchControl/Network/Camera/Roi/ProcedureParams.cs +++ b/TestBenchFramework/BenchControl/Network/Camera/Roi/ProcedureParams.cs @@ -13,6 +13,9 @@ namespace TBF.BenchControl.Network.Camera.Roi { public class ProcedureParams : ProcedureParamsBase, IParamsProvider, IProcedureParams { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(ProcedureParams) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public float PulsesPerLtr; /// [l^-1] public int DetectionImagesCount; public int DetectionPeriod1; @@ -115,14 +118,13 @@ namespace TBF.BenchControl.Network.Camera.Roi if (dbEntity == null) return; try { - ProcedureParams tmp = (ProcedureParams)(new XmlSerializer(typeof(ProcedureParams))) - .Deserialize(new StringReader(dbEntity.Parameters)); + ProcedureParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as ProcedureParams; procedureParamsEntity = dbEntity; componentName = dbEntity.CmpntName; procedure = dbEntity.Procedure; - tmp.CopyContentTo(this); + if (tmp != null) tmp.CopyContentTo(this); } catch { diff --git a/TestBenchFramework/BenchControl/Network/Camera/Roi/RoiCfg.cs b/TestBenchFramework/BenchControl/Network/Camera/Roi/RoiCfg.cs index 373c3beff..693e2edc0 100644 --- a/TestBenchFramework/BenchControl/Network/Camera/Roi/RoiCfg.cs +++ b/TestBenchFramework/BenchControl/Network/Camera/Roi/RoiCfg.cs @@ -9,6 +9,9 @@ namespace TBF.BenchControl.Network.Camera.Roi { public class RoiCfg : ComponentCfgBase, IChildComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(RoiCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new RoiCfgCtrl(); } /// diff --git a/TestBenchFramework/BenchControl/Output/FileWriters/Basic/FactoryCompound.cs b/TestBenchFramework/BenchControl/Output/FileWriters/Basic/FactoryCompound.cs index 90ce22312..7959c8b0e 100644 --- a/TestBenchFramework/BenchControl/Output/FileWriters/Basic/FactoryCompound.cs +++ b/TestBenchFramework/BenchControl/Output/FileWriters/Basic/FactoryCompound.cs @@ -21,7 +21,7 @@ namespace TBF.BenchControl.Output.FileWriters.Basic public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - IComponentCfg cfg = ComponentCfgBase.CreateFromDbEntity(typeof(WriterCfg), component, this); + IComponentCfg cfg = ComponentCfgBase.CreateFromDbEntity(WriterCfg.Serializer, component, this); (cfg as WriterCfg).MetersKind = Config.Entities.MetersKind.Combined; return cfg; } diff --git a/TestBenchFramework/BenchControl/Output/FileWriters/Basic/FactoryHeatMeters.cs b/TestBenchFramework/BenchControl/Output/FileWriters/Basic/FactoryHeatMeters.cs index 23c17c41c..0cd7d69eb 100644 --- a/TestBenchFramework/BenchControl/Output/FileWriters/Basic/FactoryHeatMeters.cs +++ b/TestBenchFramework/BenchControl/Output/FileWriters/Basic/FactoryHeatMeters.cs @@ -21,7 +21,7 @@ namespace TBF.BenchControl.Output.FileWriters.Basic public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - IComponentCfg cfg = ComponentCfgBase.CreateFromDbEntity(typeof(WriterCfg), component, this); + IComponentCfg cfg = ComponentCfgBase.CreateFromDbEntity(WriterCfg.Serializer, component, this); (cfg as WriterCfg).MetersKind = Config.Entities.MetersKind.HeatMeter; return cfg; } diff --git a/TestBenchFramework/BenchControl/Output/FileWriters/Basic/FactorySingle.cs b/TestBenchFramework/BenchControl/Output/FileWriters/Basic/FactorySingle.cs index 05f5e55e7..ab12171cd 100644 --- a/TestBenchFramework/BenchControl/Output/FileWriters/Basic/FactorySingle.cs +++ b/TestBenchFramework/BenchControl/Output/FileWriters/Basic/FactorySingle.cs @@ -21,7 +21,7 @@ namespace TBF.BenchControl.Output.FileWriters.Basic public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - IComponentCfg cfg = ComponentCfgBase.CreateFromDbEntity(typeof(WriterCfg), component, this); + IComponentCfg cfg = ComponentCfgBase.CreateFromDbEntity(WriterCfg.Serializer, component, this); (cfg as WriterCfg).MetersKind = Config.Entities.MetersKind.Single; return cfg; } diff --git a/TestBenchFramework/BenchControl/Output/FileWriters/Basic/WriterCfg.cs b/TestBenchFramework/BenchControl/Output/FileWriters/Basic/WriterCfg.cs index 9adafb3f0..cb81d08b1 100644 --- a/TestBenchFramework/BenchControl/Output/FileWriters/Basic/WriterCfg.cs +++ b/TestBenchFramework/BenchControl/Output/FileWriters/Basic/WriterCfg.cs @@ -11,6 +11,9 @@ namespace TBF.BenchControl.Output.FileWriters.Basic { public class WriterCfg : ComponentCfgBase, Generic.IComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(WriterCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new WriterCfgCtrl(); } public string DestinationPath; /// Directory path into which the results will be saved diff --git a/TestBenchFramework/BenchControl/Output/FileWriters/Enhanced/FactoryCompound.cs b/TestBenchFramework/BenchControl/Output/FileWriters/Enhanced/FactoryCompound.cs index d53d08925..53112633d 100644 --- a/TestBenchFramework/BenchControl/Output/FileWriters/Enhanced/FactoryCompound.cs +++ b/TestBenchFramework/BenchControl/Output/FileWriters/Enhanced/FactoryCompound.cs @@ -21,7 +21,7 @@ namespace TBF.BenchControl.Output.FileWriters.Enhanced public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - IComponentCfg cfg = ComponentCfgBase.CreateFromDbEntity(typeof(WriterCfg), component, this); + IComponentCfg cfg = ComponentCfgBase.CreateFromDbEntity(WriterCfg.Serializer, component, this); (cfg as WriterCfg).MetersKind = Config.Entities.MetersKind.Combined; return cfg; } diff --git a/TestBenchFramework/BenchControl/Output/FileWriters/Enhanced/FactoryHeatMeters.cs b/TestBenchFramework/BenchControl/Output/FileWriters/Enhanced/FactoryHeatMeters.cs index 9f607c4ee..df9fd6ae4 100644 --- a/TestBenchFramework/BenchControl/Output/FileWriters/Enhanced/FactoryHeatMeters.cs +++ b/TestBenchFramework/BenchControl/Output/FileWriters/Enhanced/FactoryHeatMeters.cs @@ -21,7 +21,7 @@ namespace TBF.BenchControl.Output.FileWriters.Enhanced public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - IComponentCfg cfg = ComponentCfgBase.CreateFromDbEntity(typeof(WriterCfg), component, this); + IComponentCfg cfg = ComponentCfgBase.CreateFromDbEntity(WriterCfg.Serializer, component, this); (cfg as WriterCfg).MetersKind = Config.Entities.MetersKind.HeatMeter; return cfg; } diff --git a/TestBenchFramework/BenchControl/Output/FileWriters/Enhanced/FactorySingle.cs b/TestBenchFramework/BenchControl/Output/FileWriters/Enhanced/FactorySingle.cs index a101701f2..020f96b82 100644 --- a/TestBenchFramework/BenchControl/Output/FileWriters/Enhanced/FactorySingle.cs +++ b/TestBenchFramework/BenchControl/Output/FileWriters/Enhanced/FactorySingle.cs @@ -21,7 +21,7 @@ namespace TBF.BenchControl.Output.FileWriters.Enhanced public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - IComponentCfg cfg = ComponentCfgBase.CreateFromDbEntity(typeof(WriterCfg), component, this); + IComponentCfg cfg = ComponentCfgBase.CreateFromDbEntity(WriterCfg.Serializer, component, this); (cfg as WriterCfg).MetersKind = Config.Entities.MetersKind.Single; return cfg; } diff --git a/TestBenchFramework/BenchControl/Output/FileWriters/Enhanced/WriterCfg.cs b/TestBenchFramework/BenchControl/Output/FileWriters/Enhanced/WriterCfg.cs index 36445b572..f9dbbb3bb 100644 --- a/TestBenchFramework/BenchControl/Output/FileWriters/Enhanced/WriterCfg.cs +++ b/TestBenchFramework/BenchControl/Output/FileWriters/Enhanced/WriterCfg.cs @@ -8,6 +8,9 @@ namespace TBF.BenchControl.Output.FileWriters.Enhanced { public class WriterCfg : ComponentCfgBase, Generic.IComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(WriterCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new WriterCfgCtrl(); } public string DestinationPath; /// Directory path into which the results will be saved diff --git a/TestBenchFramework/BenchControl/Output/FileWriters/Xml/FactoryCompound.cs b/TestBenchFramework/BenchControl/Output/FileWriters/Xml/FactoryCompound.cs index de5f66750..924274be9 100644 --- a/TestBenchFramework/BenchControl/Output/FileWriters/Xml/FactoryCompound.cs +++ b/TestBenchFramework/BenchControl/Output/FileWriters/Xml/FactoryCompound.cs @@ -21,7 +21,7 @@ namespace TBF.BenchControl.Output.FileWriters.Xml public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - IComponentCfg cfg = ComponentCfgBase.CreateFromDbEntity(typeof(WriterCfg), component, this); + IComponentCfg cfg = ComponentCfgBase.CreateFromDbEntity(WriterCfg.Serializer, component, this); (cfg as WriterCfg).MetersKind = Config.Entities.MetersKind.Combined; return cfg; } diff --git a/TestBenchFramework/BenchControl/Output/FileWriters/Xml/FactoryHeatMeters.cs b/TestBenchFramework/BenchControl/Output/FileWriters/Xml/FactoryHeatMeters.cs index 209755cf2..c9eca72dd 100644 --- a/TestBenchFramework/BenchControl/Output/FileWriters/Xml/FactoryHeatMeters.cs +++ b/TestBenchFramework/BenchControl/Output/FileWriters/Xml/FactoryHeatMeters.cs @@ -21,7 +21,7 @@ namespace TBF.BenchControl.Output.FileWriters.Xml public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - IComponentCfg cfg = ComponentCfgBase.CreateFromDbEntity(typeof(WriterCfg), component, this); + IComponentCfg cfg = ComponentCfgBase.CreateFromDbEntity(WriterCfg.Serializer, component, this); (cfg as WriterCfg).MetersKind = Config.Entities.MetersKind.HeatMeter; return cfg; } diff --git a/TestBenchFramework/BenchControl/Output/FileWriters/Xml/FactorySingle.cs b/TestBenchFramework/BenchControl/Output/FileWriters/Xml/FactorySingle.cs index 846458e8c..8e986d636 100644 --- a/TestBenchFramework/BenchControl/Output/FileWriters/Xml/FactorySingle.cs +++ b/TestBenchFramework/BenchControl/Output/FileWriters/Xml/FactorySingle.cs @@ -21,7 +21,7 @@ namespace TBF.BenchControl.Output.FileWriters.Xml public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - IComponentCfg cfg = ComponentCfgBase.CreateFromDbEntity(typeof(WriterCfg), component, this); + IComponentCfg cfg = ComponentCfgBase.CreateFromDbEntity(WriterCfg.Serializer, component, this); (cfg as WriterCfg).MetersKind = Config.Entities.MetersKind.Single; return cfg; } diff --git a/TestBenchFramework/BenchControl/Output/FileWriters/Xml/WriterCfg.cs b/TestBenchFramework/BenchControl/Output/FileWriters/Xml/WriterCfg.cs index 0f9a03e39..d7664e720 100644 --- a/TestBenchFramework/BenchControl/Output/FileWriters/Xml/WriterCfg.cs +++ b/TestBenchFramework/BenchControl/Output/FileWriters/Xml/WriterCfg.cs @@ -12,6 +12,9 @@ namespace TBF.BenchControl.Output.FileWriters.Xml public class WriterCfg : ComponentCfgBase, Generic.IComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(WriterCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new WriterCfgCtrl(); } public string DestinationPath; /// Directory path into which the results will be saved diff --git a/TestBenchFramework/BenchControl/Output/Printers/Enhanced/FactoryCompound.cs b/TestBenchFramework/BenchControl/Output/Printers/Enhanced/FactoryCompound.cs index 35c486258..46f1a8bc5 100644 --- a/TestBenchFramework/BenchControl/Output/Printers/Enhanced/FactoryCompound.cs +++ b/TestBenchFramework/BenchControl/Output/Printers/Enhanced/FactoryCompound.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.Output.Printers.Enhanced public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(PrinterCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(PrinterCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/Output/Printers/Enhanced/FactoryHeatMeters.cs b/TestBenchFramework/BenchControl/Output/Printers/Enhanced/FactoryHeatMeters.cs index 0bda0f6d2..f3d6f51c0 100644 --- a/TestBenchFramework/BenchControl/Output/Printers/Enhanced/FactoryHeatMeters.cs +++ b/TestBenchFramework/BenchControl/Output/Printers/Enhanced/FactoryHeatMeters.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.Output.Printers.Enhanced public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(PrinterCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(PrinterCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/Output/Printers/Enhanced/FactorySingle.cs b/TestBenchFramework/BenchControl/Output/Printers/Enhanced/FactorySingle.cs index 1c9037a22..fb2214e54 100644 --- a/TestBenchFramework/BenchControl/Output/Printers/Enhanced/FactorySingle.cs +++ b/TestBenchFramework/BenchControl/Output/Printers/Enhanced/FactorySingle.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.Output.Printers.Enhanced public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(PrinterCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(PrinterCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/Output/Printers/Enhanced/PrinterCfg.cs b/TestBenchFramework/BenchControl/Output/Printers/Enhanced/PrinterCfg.cs index dadbf2062..5901072b6 100644 --- a/TestBenchFramework/BenchControl/Output/Printers/Enhanced/PrinterCfg.cs +++ b/TestBenchFramework/BenchControl/Output/Printers/Enhanced/PrinterCfg.cs @@ -9,6 +9,9 @@ namespace TBF.BenchControl.Output.Printers.Enhanced { public class PrinterCfg : ComponentCfgBase, Generic.IComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(PrinterCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new PrinterCfgCtrl(); } /// diff --git a/TestBenchFramework/BenchControl/ProcedureParamsBase.cs b/TestBenchFramework/BenchControl/ProcedureParamsBase.cs index 4918e7c1f..91a61103a 100644 --- a/TestBenchFramework/BenchControl/ProcedureParamsBase.cs +++ b/TestBenchFramework/BenchControl/ProcedureParamsBase.cs @@ -14,6 +14,8 @@ namespace TBF.BenchControl { protected ComponentProcedure procedureParamsEntity; + protected virtual XmlSerializer GetSerializer() { return new XmlSerializer(GetType()); } + public string ComponentName { get { return componentName; } } protected string componentName; @@ -62,7 +64,7 @@ namespace TBF.BenchControl using (var writer = new StringWriter()) { /// Serialize this class with parameters - (new XmlSerializer(GetType())).Serialize(writer, this); + GetSerializer().Serialize(writer, this); /// Create and return the ComponentProcedure entity ComponentProcedure entity = new ComponentProcedure(); @@ -78,7 +80,7 @@ namespace TBF.BenchControl using (var writer = new StringWriter()) { /// Serialize this class and update the entity - (new XmlSerializer(GetType())).Serialize(writer, this); + GetSerializer().Serialize(writer, this); procedureParamsEntity.Parameters = writer.ToString(); procedureParamsEntity.CmpntName = componentName; procedureParamsEntity.Procedure = procedure; diff --git a/TestBenchFramework/BenchControl/ResultsPrinters/Cevak/PrinterCfg.cs b/TestBenchFramework/BenchControl/ResultsPrinters/Cevak/PrinterCfg.cs index 3bcdfbd0e..e6fbc836b 100644 --- a/TestBenchFramework/BenchControl/ResultsPrinters/Cevak/PrinterCfg.cs +++ b/TestBenchFramework/BenchControl/ResultsPrinters/Cevak/PrinterCfg.cs @@ -12,6 +12,9 @@ namespace TBF.BenchControl.ResultsPrinters.Cevak { public class PrinterCfg : ComponentCfgBase, Generic.IComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(PrinterCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new PrinterCfgCtrl(); } /// diff --git a/TestBenchFramework/BenchControl/ResultsPrinters/Cevak/PrinterFactory.cs b/TestBenchFramework/BenchControl/ResultsPrinters/Cevak/PrinterFactory.cs index e1a068265..c9b7c37bc 100644 --- a/TestBenchFramework/BenchControl/ResultsPrinters/Cevak/PrinterFactory.cs +++ b/TestBenchFramework/BenchControl/ResultsPrinters/Cevak/PrinterFactory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.ResultsPrinters.Cevak public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(PrinterCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(PrinterCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/ResultsPrinters/LabelPrinter/PrinterCfg.cs b/TestBenchFramework/BenchControl/ResultsPrinters/LabelPrinter/PrinterCfg.cs index 7c66f57fd..8f5fe0962 100644 --- a/TestBenchFramework/BenchControl/ResultsPrinters/LabelPrinter/PrinterCfg.cs +++ b/TestBenchFramework/BenchControl/ResultsPrinters/LabelPrinter/PrinterCfg.cs @@ -12,6 +12,9 @@ namespace TBF.BenchControl.ResultsPrinters.LabelPrinter { public class PrinterCfg : ComponentCfgBase, Generic.IComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(PrinterCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new PrinterCfgCtrl(); } /// diff --git a/TestBenchFramework/BenchControl/ResultsPrinters/LabelPrinter/PrinterFactory.cs b/TestBenchFramework/BenchControl/ResultsPrinters/LabelPrinter/PrinterFactory.cs index 858ea1f1a..c9979d630 100644 --- a/TestBenchFramework/BenchControl/ResultsPrinters/LabelPrinter/PrinterFactory.cs +++ b/TestBenchFramework/BenchControl/ResultsPrinters/LabelPrinter/PrinterFactory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.ResultsPrinters.LabelPrinter public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(PrinterCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(PrinterCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/ResultsPrinters/Munich/PrinterCfg.cs b/TestBenchFramework/BenchControl/ResultsPrinters/Munich/PrinterCfg.cs index 3cbeb7a6e..fa04f00c6 100644 --- a/TestBenchFramework/BenchControl/ResultsPrinters/Munich/PrinterCfg.cs +++ b/TestBenchFramework/BenchControl/ResultsPrinters/Munich/PrinterCfg.cs @@ -12,6 +12,9 @@ namespace TBF.BenchControl.ResultsPrinters.Munich { public class PrinterCfg : ComponentCfgBase, Generic.IComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(PrinterCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new PrinterCfgCtrl(); } /// diff --git a/TestBenchFramework/BenchControl/ResultsPrinters/Munich/PrinterFactory.cs b/TestBenchFramework/BenchControl/ResultsPrinters/Munich/PrinterFactory.cs index 57a367ae1..312d39fef 100644 --- a/TestBenchFramework/BenchControl/ResultsPrinters/Munich/PrinterFactory.cs +++ b/TestBenchFramework/BenchControl/ResultsPrinters/Munich/PrinterFactory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.ResultsPrinters.Munich public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(PrinterCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(PrinterCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/TestMethods/Adjustment/Factory.cs b/TestBenchFramework/BenchControl/TestMethods/Adjustment/Factory.cs index d72652541..c29252287 100644 --- a/TestBenchFramework/BenchControl/TestMethods/Adjustment/Factory.cs +++ b/TestBenchFramework/BenchControl/TestMethods/Adjustment/Factory.cs @@ -24,7 +24,7 @@ namespace TBF.BenchControl.TestMethods.Adjustment public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(TestMethodCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(TestMethodCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/TestMethods/CombinedWithDetection/CombinedWithDetTestParams.cs b/TestBenchFramework/BenchControl/TestMethods/CombinedWithDetection/CombinedWithDetTestParams.cs index c0c8f4ace..c593f8b8f 100644 --- a/TestBenchFramework/BenchControl/TestMethods/CombinedWithDetection/CombinedWithDetTestParams.cs +++ b/TestBenchFramework/BenchControl/TestMethods/CombinedWithDetection/CombinedWithDetTestParams.cs @@ -13,6 +13,9 @@ namespace TBF.BenchControl.TestMethods.CombinedWithDetection { public class CombinedWithDetTestParams : TestParamsBase, IParamsProvider, ITestParams { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(CombinedWithDetTestParams) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public float TargetQ; /// Target=terminal flow durning detection when increasing or decreasing the flow public float RelativeQfrom; /// Tested flow low range related to the detected flow public float RelativeQto; /// Tested flow high range related to the detected flow @@ -121,14 +124,13 @@ namespace TBF.BenchControl.TestMethods.CombinedWithDetection if (dbEntity == null) return; try { - CombinedWithDetTestParams tmp = (CombinedWithDetTestParams)(new XmlSerializer(typeof(CombinedWithDetTestParams))) - .Deserialize(new StringReader(dbEntity.Parameters)); + CombinedWithDetTestParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as CombinedWithDetTestParams; testParamsEntity = dbEntity; componentName = dbEntity.CmpntName; test = dbEntity.Test; - tmp.CopyContentTo(this); + if (tmp != null) tmp.CopyContentTo(this); } catch { diff --git a/TestBenchFramework/BenchControl/TestMethods/CombinedWithDetection/TestMethodCfg.cs b/TestBenchFramework/BenchControl/TestMethods/CombinedWithDetection/TestMethodCfg.cs index be69e8f9f..950e44fb9 100644 --- a/TestBenchFramework/BenchControl/TestMethods/CombinedWithDetection/TestMethodCfg.cs +++ b/TestBenchFramework/BenchControl/TestMethods/CombinedWithDetection/TestMethodCfg.cs @@ -12,6 +12,9 @@ namespace TBF.BenchControl.TestMethods.CombinedWithDetection { public class TestMethodCfg : ComponentCfgBase, Generic.IComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TestMethodCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new TestMethodCfgCtrl(); } /// Test parameters diff --git a/TestBenchFramework/BenchControl/TestMethods/CombinedWithDetection/TestMethodFactory.cs b/TestBenchFramework/BenchControl/TestMethods/CombinedWithDetection/TestMethodFactory.cs index 3ec4e76d4..77b38b45c 100644 --- a/TestBenchFramework/BenchControl/TestMethods/CombinedWithDetection/TestMethodFactory.cs +++ b/TestBenchFramework/BenchControl/TestMethods/CombinedWithDetection/TestMethodFactory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.TestMethods.CombinedWithDetection public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(TestMethodCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(TestMethodCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/TestMethods/Endurance/Factory.cs b/TestBenchFramework/BenchControl/TestMethods/Endurance/Factory.cs index 5ca39e58e..7485fe919 100644 --- a/TestBenchFramework/BenchControl/TestMethods/Endurance/Factory.cs +++ b/TestBenchFramework/BenchControl/TestMethods/Endurance/Factory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.TestMethods.Endurance public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(TestMethodCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(TestMethodCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/TestMethods/Endurance/TestMethodCfg.cs b/TestBenchFramework/BenchControl/TestMethods/Endurance/TestMethodCfg.cs index 2e8110382..ec6b24849 100644 --- a/TestBenchFramework/BenchControl/TestMethods/Endurance/TestMethodCfg.cs +++ b/TestBenchFramework/BenchControl/TestMethods/Endurance/TestMethodCfg.cs @@ -12,6 +12,9 @@ namespace TBF.BenchControl.TestMethods.Endurance { public class TestMethodCfg : ComponentCfgBase, Generic.IComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TestMethodCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new TestMethodCfgCtrl(); } public string Cycle; diff --git a/TestBenchFramework/BenchControl/TestMethods/Endurance/TestParams.cs b/TestBenchFramework/BenchControl/TestMethods/Endurance/TestParams.cs index 54f65472d..1812c4cbb 100644 --- a/TestBenchFramework/BenchControl/TestMethods/Endurance/TestParams.cs +++ b/TestBenchFramework/BenchControl/TestMethods/Endurance/TestParams.cs @@ -13,7 +13,10 @@ namespace TBF.BenchControl.TestMethods.Endurance { public class TestParams : TestParamsBase, IParamsProvider, ITestParams { - public bool BooleanParam; /// Main meter readings are ignored during test (suitable for small flows) + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TestParams) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + + public bool BooleanParam; /// Main meter readings are ignored during test (suitable for small flows) public override void InitializeAll() { @@ -81,14 +84,13 @@ namespace TBF.BenchControl.TestMethods.Endurance if (dbEntity == null) return; try { - TestParams tmp = (TestParams)(new XmlSerializer(typeof(TestParams))) - .Deserialize(new StringReader(dbEntity.Parameters)); + TestParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as TestParams; testParamsEntity = dbEntity; componentName = dbEntity.CmpntName; test = dbEntity.Test; - tmp.CopyContentTo(this); + if (tmp != null) tmp.CopyContentTo(this); } catch { diff --git a/TestBenchFramework/BenchControl/TestMethods/FixedStartAdvanced/Single/Factory.cs b/TestBenchFramework/BenchControl/TestMethods/FixedStartAdvanced/Single/Factory.cs index 870686d3b..f02b6157c 100644 --- a/TestBenchFramework/BenchControl/TestMethods/FixedStartAdvanced/Single/Factory.cs +++ b/TestBenchFramework/BenchControl/TestMethods/FixedStartAdvanced/Single/Factory.cs @@ -21,7 +21,7 @@ namespace TBF.BenchControl.TestMethods.FixedStartAdvanced.Single public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(TestMethodCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(TestMethodCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/TestMethods/FixedStartMassCollection/Compound/Factory.cs b/TestBenchFramework/BenchControl/TestMethods/FixedStartMassCollection/Compound/Factory.cs index 697f79128..acf4dec8a 100644 --- a/TestBenchFramework/BenchControl/TestMethods/FixedStartMassCollection/Compound/Factory.cs +++ b/TestBenchFramework/BenchControl/TestMethods/FixedStartMassCollection/Compound/Factory.cs @@ -21,7 +21,7 @@ namespace TBF.BenchControl.TestMethods.FixedStartMassCollection.Compound public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(TestMethodCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(TestMethodCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/TestMethods/FixedStartMassCollection/HeatMeters/Factory.cs b/TestBenchFramework/BenchControl/TestMethods/FixedStartMassCollection/HeatMeters/Factory.cs index 40f1237f4..740e57faf 100644 --- a/TestBenchFramework/BenchControl/TestMethods/FixedStartMassCollection/HeatMeters/Factory.cs +++ b/TestBenchFramework/BenchControl/TestMethods/FixedStartMassCollection/HeatMeters/Factory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.TestMethods.FixedStartMassCollection.HeatMeters public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(TestMethodCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(TestMethodCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/TestMethods/FixedStartMassCollection/HeatMeters/TestMethodCfg.cs b/TestBenchFramework/BenchControl/TestMethods/FixedStartMassCollection/HeatMeters/TestMethodCfg.cs index 6991f157d..d2b8521f0 100644 --- a/TestBenchFramework/BenchControl/TestMethods/FixedStartMassCollection/HeatMeters/TestMethodCfg.cs +++ b/TestBenchFramework/BenchControl/TestMethods/FixedStartMassCollection/HeatMeters/TestMethodCfg.cs @@ -12,6 +12,9 @@ namespace TBF.BenchControl.TestMethods.FixedStartMassCollection.HeatMeters { public class TestMethodCfg : ComponentCfgBase, Generic.IComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TestMethodCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new TestMethodCfgCtrl(); } /// Test parameters diff --git a/TestBenchFramework/BenchControl/TestMethods/FixedStartMassCollection/HeatMeters/TestParams.cs b/TestBenchFramework/BenchControl/TestMethods/FixedStartMassCollection/HeatMeters/TestParams.cs index ef68a501a..b82e7597a 100644 --- a/TestBenchFramework/BenchControl/TestMethods/FixedStartMassCollection/HeatMeters/TestParams.cs +++ b/TestBenchFramework/BenchControl/TestMethods/FixedStartMassCollection/HeatMeters/TestParams.cs @@ -13,6 +13,9 @@ namespace TBF.BenchControl.TestMethods.FixedStartMassCollection.HeatMeters { public class TestParams : TestParamsBase, IParamsProvider, ITestParams { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TestParams) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public float ErrorLimitLo; /// [%] public float ErrorLimitHi; /// [%] public bool EvaluateVolume; /// true = evaluate also the volume, false = evaluate only energy @@ -159,14 +162,13 @@ namespace TBF.BenchControl.TestMethods.FixedStartMassCollection.HeatMeters if (dbEntity == null) return; try { - TestParams tmp = (TestParams)(new XmlSerializer(typeof(TestParams))) - .Deserialize(new StringReader(dbEntity.Parameters)); + TestParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as TestParams; testParamsEntity = dbEntity; componentName = dbEntity.CmpntName; test = dbEntity.Test; - tmp.CopyContentTo(this); + if (tmp != null) tmp.CopyContentTo(this); } catch { diff --git a/TestBenchFramework/BenchControl/TestMethods/FixedStartMassCollection/Single/Factory.cs b/TestBenchFramework/BenchControl/TestMethods/FixedStartMassCollection/Single/Factory.cs index aba42036f..2b623d87c 100644 --- a/TestBenchFramework/BenchControl/TestMethods/FixedStartMassCollection/Single/Factory.cs +++ b/TestBenchFramework/BenchControl/TestMethods/FixedStartMassCollection/Single/Factory.cs @@ -21,7 +21,7 @@ namespace TBF.BenchControl.TestMethods.FixedStartMassCollection.Single public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(TestMethodCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(TestMethodCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/TestMethods/FlyingStart/Compound/Factory.cs b/TestBenchFramework/BenchControl/TestMethods/FlyingStart/Compound/Factory.cs index 6e0a814e6..93110bb6d 100644 --- a/TestBenchFramework/BenchControl/TestMethods/FlyingStart/Compound/Factory.cs +++ b/TestBenchFramework/BenchControl/TestMethods/FlyingStart/Compound/Factory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.TestMethods.FlyingStart.Compound public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(TestMethodCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(TestMethodCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/TestMethods/FlyingStart/Compound/TestMethodCfg.cs b/TestBenchFramework/BenchControl/TestMethods/FlyingStart/Compound/TestMethodCfg.cs index 0f5f8fb7e..3d146600e 100644 --- a/TestBenchFramework/BenchControl/TestMethods/FlyingStart/Compound/TestMethodCfg.cs +++ b/TestBenchFramework/BenchControl/TestMethods/FlyingStart/Compound/TestMethodCfg.cs @@ -12,6 +12,9 @@ namespace TBF.BenchControl.TestMethods.FlyingStart.Compound { public class TestMethodCfg : ComponentCfgBase, Generic.IComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TestMethodCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new TestMethodCfgCtrl(); } /// Test parameters diff --git a/TestBenchFramework/BenchControl/TestMethods/FlyingStart/Compound/TestParams.cs b/TestBenchFramework/BenchControl/TestMethods/FlyingStart/Compound/TestParams.cs index 9ceb9542e..efd470f66 100644 --- a/TestBenchFramework/BenchControl/TestMethods/FlyingStart/Compound/TestParams.cs +++ b/TestBenchFramework/BenchControl/TestMethods/FlyingStart/Compound/TestParams.cs @@ -13,7 +13,10 @@ namespace TBF.BenchControl.TestMethods.FlyingStart.Compound { public class TestParams : TestParamsBase, IParamsProvider, ITestParams { - public bool SupressTrills; /// Main meter readings are ignored during test (suitable for small flows) + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TestParams) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + + public bool SupressTrills; /// Main meter readings are ignored during test (suitable for small flows) public override void InitializeAll() { @@ -81,14 +84,13 @@ namespace TBF.BenchControl.TestMethods.FlyingStart.Compound if (dbEntity == null) return; try { - TestParams tmp = (TestParams)(new XmlSerializer(typeof(TestParams))) - .Deserialize(new StringReader(dbEntity.Parameters)); + TestParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as TestParams; testParamsEntity = dbEntity; componentName = dbEntity.CmpntName; test = dbEntity.Test; - tmp.CopyContentTo(this); + if (tmp != null) tmp.CopyContentTo(this); } catch { diff --git a/TestBenchFramework/BenchControl/TestMethods/FlyingStart/HeatMeters/Factory.cs b/TestBenchFramework/BenchControl/TestMethods/FlyingStart/HeatMeters/Factory.cs index 34da203ac..bdadd0977 100644 --- a/TestBenchFramework/BenchControl/TestMethods/FlyingStart/HeatMeters/Factory.cs +++ b/TestBenchFramework/BenchControl/TestMethods/FlyingStart/HeatMeters/Factory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.TestMethods.FlyingStart.HeatMeters public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(TestMethodCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(TestMethodCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/TestMethods/FlyingStart/HeatMeters/TestMethodCfg.cs b/TestBenchFramework/BenchControl/TestMethods/FlyingStart/HeatMeters/TestMethodCfg.cs index 16618d4d9..528aeb9ad 100644 --- a/TestBenchFramework/BenchControl/TestMethods/FlyingStart/HeatMeters/TestMethodCfg.cs +++ b/TestBenchFramework/BenchControl/TestMethods/FlyingStart/HeatMeters/TestMethodCfg.cs @@ -12,6 +12,9 @@ namespace TBF.BenchControl.TestMethods.FlyingStart.HeatMeters { public class TestMethodCfg : ComponentCfgBase, Generic.IComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TestMethodCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new TestMethodCfgCtrl(); } /// Test parameters diff --git a/TestBenchFramework/BenchControl/TestMethods/FlyingStart/HeatMeters/TestParams.cs b/TestBenchFramework/BenchControl/TestMethods/FlyingStart/HeatMeters/TestParams.cs index 6562f51bd..c8e169267 100644 --- a/TestBenchFramework/BenchControl/TestMethods/FlyingStart/HeatMeters/TestParams.cs +++ b/TestBenchFramework/BenchControl/TestMethods/FlyingStart/HeatMeters/TestParams.cs @@ -13,6 +13,9 @@ namespace TBF.BenchControl.TestMethods.FlyingStart.HeatMeters { public class TestParams : TestParamsBase, IParamsProvider, ITestParams { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TestParams) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public float ErrorLimitLo; /// [%] public float ErrorLimitHi; /// [%] public bool EvaluateVolume; /// true = evaluate also the volume, false = evaluate only energy @@ -159,14 +162,13 @@ namespace TBF.BenchControl.TestMethods.FlyingStart.HeatMeters if (dbEntity == null) return; try { - TestParams tmp = (TestParams)(new XmlSerializer(typeof(TestParams))) - .Deserialize(new StringReader(dbEntity.Parameters)); + TestParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as TestParams; testParamsEntity = dbEntity; componentName = dbEntity.CmpntName; test = dbEntity.Test; - tmp.CopyContentTo(this); + if (tmp != null) tmp.CopyContentTo(this); } catch { diff --git a/TestBenchFramework/BenchControl/TestMethods/FlyingStart/Single/Factory.cs b/TestBenchFramework/BenchControl/TestMethods/FlyingStart/Single/Factory.cs index 799004a1e..3a010facc 100644 --- a/TestBenchFramework/BenchControl/TestMethods/FlyingStart/Single/Factory.cs +++ b/TestBenchFramework/BenchControl/TestMethods/FlyingStart/Single/Factory.cs @@ -21,7 +21,7 @@ namespace TBF.BenchControl.TestMethods.FlyingStart.Single public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(TestMethodCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(TestMethodCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/TestMethods/FlyingStartMassCollection/Compound/CombinedTestParams.cs b/TestBenchFramework/BenchControl/TestMethods/FlyingStartMassCollection/Compound/CombinedTestParams.cs index 5a13a6e91..2cefe370f 100644 --- a/TestBenchFramework/BenchControl/TestMethods/FlyingStartMassCollection/Compound/CombinedTestParams.cs +++ b/TestBenchFramework/BenchControl/TestMethods/FlyingStartMassCollection/Compound/CombinedTestParams.cs @@ -13,7 +13,10 @@ namespace TBF.BenchControl.TestMethods.FlyingStartMassCollection.Compound { public class CombinedTestParams : TestParamsBase, IParamsProvider, ITestParams { - public bool SupressTrills; /// Main meter readings are ignored during test (suitable for small flows) + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(CombinedTestParams) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + + public bool SupressTrills; /// Main meter readings are ignored during test (suitable for small flows) public override void InitializeAll() { @@ -81,14 +84,13 @@ namespace TBF.BenchControl.TestMethods.FlyingStartMassCollection.Compound if (dbEntity == null) return; try { - CombinedTestParams tmp = (CombinedTestParams)(new XmlSerializer(typeof(CombinedTestParams))) - .Deserialize(new StringReader(dbEntity.Parameters)); + CombinedTestParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as CombinedTestParams; testParamsEntity = dbEntity; componentName = dbEntity.CmpntName; test = dbEntity.Test; - tmp.CopyContentTo(this); + if (tmp != null) tmp.CopyContentTo(this); } catch { diff --git a/TestBenchFramework/BenchControl/TestMethods/FlyingStartMassCollection/Compound/Factory.cs b/TestBenchFramework/BenchControl/TestMethods/FlyingStartMassCollection/Compound/Factory.cs index b52e434a6..e9cdc2ae0 100644 --- a/TestBenchFramework/BenchControl/TestMethods/FlyingStartMassCollection/Compound/Factory.cs +++ b/TestBenchFramework/BenchControl/TestMethods/FlyingStartMassCollection/Compound/Factory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.TestMethods.FlyingStartMassCollection.Compound public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(TestMethodCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(TestMethodCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/TestMethods/FlyingStartMassCollection/Compound/TestMethodCfg.cs b/TestBenchFramework/BenchControl/TestMethods/FlyingStartMassCollection/Compound/TestMethodCfg.cs index 634f50c22..20234c2e4 100644 --- a/TestBenchFramework/BenchControl/TestMethods/FlyingStartMassCollection/Compound/TestMethodCfg.cs +++ b/TestBenchFramework/BenchControl/TestMethods/FlyingStartMassCollection/Compound/TestMethodCfg.cs @@ -12,6 +12,9 @@ namespace TBF.BenchControl.TestMethods.FlyingStartMassCollection.Compound { public class TestMethodCfg : ComponentCfgBase, Generic.IComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TestMethodCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new TestMethodCfgCtrl(); } /// Test parameters diff --git a/TestBenchFramework/BenchControl/TestMethods/FlyingStartMassCollection/HeatMeters/Factory.cs b/TestBenchFramework/BenchControl/TestMethods/FlyingStartMassCollection/HeatMeters/Factory.cs index 48a900344..ebd85255f 100644 --- a/TestBenchFramework/BenchControl/TestMethods/FlyingStartMassCollection/HeatMeters/Factory.cs +++ b/TestBenchFramework/BenchControl/TestMethods/FlyingStartMassCollection/HeatMeters/Factory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.TestMethods.FlyingStartMassCollection.HeatMeters public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(TestMethodCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(TestMethodCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/TestMethods/FlyingStartMassCollection/HeatMeters/TestMethodCfg.cs b/TestBenchFramework/BenchControl/TestMethods/FlyingStartMassCollection/HeatMeters/TestMethodCfg.cs index eddc1418f..93f1089c8 100644 --- a/TestBenchFramework/BenchControl/TestMethods/FlyingStartMassCollection/HeatMeters/TestMethodCfg.cs +++ b/TestBenchFramework/BenchControl/TestMethods/FlyingStartMassCollection/HeatMeters/TestMethodCfg.cs @@ -12,6 +12,9 @@ namespace TBF.BenchControl.TestMethods.FlyingStartMassCollection.HeatMeters { public class TestMethodCfg : ComponentCfgBase, Generic.IComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TestMethodCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new TestMethodCfgCtrl(); } /// Test parameters diff --git a/TestBenchFramework/BenchControl/TestMethods/FlyingStartMassCollection/HeatMeters/TestParams.cs b/TestBenchFramework/BenchControl/TestMethods/FlyingStartMassCollection/HeatMeters/TestParams.cs index 2bd34face..6b0ddb0c4 100644 --- a/TestBenchFramework/BenchControl/TestMethods/FlyingStartMassCollection/HeatMeters/TestParams.cs +++ b/TestBenchFramework/BenchControl/TestMethods/FlyingStartMassCollection/HeatMeters/TestParams.cs @@ -13,6 +13,9 @@ namespace TBF.BenchControl.TestMethods.FlyingStartMassCollection.HeatMeters { public class TestParams : TestParamsBase, IParamsProvider, ITestParams { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TestParams) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public float ErrorLimitLo; /// [%] public float ErrorLimitHi; /// [%] public bool EvaluateVolume; /// true = evaluate also the volume, false = evaluate only energy @@ -159,14 +162,13 @@ namespace TBF.BenchControl.TestMethods.FlyingStartMassCollection.HeatMeters if (dbEntity == null) return; try { - TestParams tmp = (TestParams)(new XmlSerializer(typeof(TestParams))) - .Deserialize(new StringReader(dbEntity.Parameters)); + TestParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as TestParams; testParamsEntity = dbEntity; componentName = dbEntity.CmpntName; test = dbEntity.Test; - tmp.CopyContentTo(this); + if (tmp != null) tmp.CopyContentTo(this); } catch { diff --git a/TestBenchFramework/BenchControl/TestMethods/FlyingStartMassCollection/Single/Factory.cs b/TestBenchFramework/BenchControl/TestMethods/FlyingStartMassCollection/Single/Factory.cs index 93da2956a..4ed9c23a5 100644 --- a/TestBenchFramework/BenchControl/TestMethods/FlyingStartMassCollection/Single/Factory.cs +++ b/TestBenchFramework/BenchControl/TestMethods/FlyingStartMassCollection/Single/Factory.cs @@ -21,7 +21,7 @@ namespace TBF.BenchControl.TestMethods.FlyingStartMassCollection.Single public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(TestMethodCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(TestMethodCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/TestMethods/LeakTest/LeakTestParams.cs b/TestBenchFramework/BenchControl/TestMethods/LeakTest/LeakTestParams.cs index f8af63337..aa3a78d4d 100644 --- a/TestBenchFramework/BenchControl/TestMethods/LeakTest/LeakTestParams.cs +++ b/TestBenchFramework/BenchControl/TestMethods/LeakTest/LeakTestParams.cs @@ -13,6 +13,9 @@ namespace TBF.BenchControl.TestMethods.LeakTest { public class LeakTestParams : TestParamsBase, IParamsProvider, ITestParams { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(LeakTestParams) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public float PressureLo; /// Presure range low limit in [bar] public float PressureHi; /// Presure range high limit in [bar] public int DurationPMax; /// Duration of PMax test in [s] @@ -106,14 +109,13 @@ namespace TBF.BenchControl.TestMethods.LeakTest if (dbEntity == null) return; try { - LeakTestParams tmp = (LeakTestParams)(new XmlSerializer(typeof(LeakTestParams))) - .Deserialize(new StringReader(dbEntity.Parameters)); + LeakTestParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as LeakTestParams; testParamsEntity = dbEntity; componentName = dbEntity.CmpntName; test = dbEntity.Test; - tmp.CopyContentTo(this); + if (tmp != null) tmp.CopyContentTo(this); } catch { diff --git a/TestBenchFramework/BenchControl/TestMethods/LeakTest/TestMethodCfg.cs b/TestBenchFramework/BenchControl/TestMethods/LeakTest/TestMethodCfg.cs index c96425a86..4be035ccb 100644 --- a/TestBenchFramework/BenchControl/TestMethods/LeakTest/TestMethodCfg.cs +++ b/TestBenchFramework/BenchControl/TestMethods/LeakTest/TestMethodCfg.cs @@ -12,6 +12,9 @@ namespace TBF.BenchControl.TestMethods.LeakTest { public class TestMethodCfg : ComponentCfgBase, Generic.IComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TestMethodCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new TestMethodCfgCtrl(); } /// Test parameters diff --git a/TestBenchFramework/BenchControl/TestMethods/LeakTest/TestMethodFactory.cs b/TestBenchFramework/BenchControl/TestMethods/LeakTest/TestMethodFactory.cs index 9eaf7861a..2e3050258 100644 --- a/TestBenchFramework/BenchControl/TestMethods/LeakTest/TestMethodFactory.cs +++ b/TestBenchFramework/BenchControl/TestMethods/LeakTest/TestMethodFactory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.TestMethods.LeakTest public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(TestMethodCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(TestMethodCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/TestMethods/LiveStream/Cfg.cs b/TestBenchFramework/BenchControl/TestMethods/LiveStream/Cfg.cs index 0b199f68a..874e56e0b 100644 --- a/TestBenchFramework/BenchControl/TestMethods/LiveStream/Cfg.cs +++ b/TestBenchFramework/BenchControl/TestMethods/LiveStream/Cfg.cs @@ -12,6 +12,9 @@ namespace TBF.BenchControl.TestMethods.LiveStream { public class Cfg : ComponentCfgBase, Generic.IComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(Cfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new CfgCtrl(); } diff --git a/TestBenchFramework/BenchControl/TestMethods/LiveStream/Factory.cs b/TestBenchFramework/BenchControl/TestMethods/LiveStream/Factory.cs index 6d497c983..edf863a6f 100644 --- a/TestBenchFramework/BenchControl/TestMethods/LiveStream/Factory.cs +++ b/TestBenchFramework/BenchControl/TestMethods/LiveStream/Factory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.TestMethods.LiveStream public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(Cfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(Cfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/TestMethods/OuterLoop/End/Factory.cs b/TestBenchFramework/BenchControl/TestMethods/OuterLoop/End/Factory.cs index 88042b2f6..a6813f603 100644 --- a/TestBenchFramework/BenchControl/TestMethods/OuterLoop/End/Factory.cs +++ b/TestBenchFramework/BenchControl/TestMethods/OuterLoop/End/Factory.cs @@ -21,7 +21,7 @@ namespace TBF.BenchControl.TestMethods.OuterLoop.End public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(TestMethodCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(TestMethodCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/TestMethods/OuterLoop/Start/Factory.cs b/TestBenchFramework/BenchControl/TestMethods/OuterLoop/Start/Factory.cs index 5881801c9..e106733b7 100644 --- a/TestBenchFramework/BenchControl/TestMethods/OuterLoop/Start/Factory.cs +++ b/TestBenchFramework/BenchControl/TestMethods/OuterLoop/Start/Factory.cs @@ -21,7 +21,7 @@ namespace TBF.BenchControl.TestMethods.OuterLoop.Start public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(TestMethodCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(TestMethodCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/TestMethods/PMaxTest/PMaxTestParams.cs b/TestBenchFramework/BenchControl/TestMethods/PMaxTest/PMaxTestParams.cs index dbcd75e27..40f11afa6 100644 --- a/TestBenchFramework/BenchControl/TestMethods/PMaxTest/PMaxTestParams.cs +++ b/TestBenchFramework/BenchControl/TestMethods/PMaxTest/PMaxTestParams.cs @@ -13,6 +13,9 @@ namespace TBF.BenchControl.TestMethods.PMaxTest { public class PMaxTestParams : TestParamsBase, IParamsProvider, ITestParams { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(PMaxTestParams) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public float PressureLo; /// Presure range low limit in [bar] public float PressureHi; /// Presure range high limit in [bar] public int DurationPMax; /// Duration of the test in [s] @@ -99,14 +102,13 @@ namespace TBF.BenchControl.TestMethods.PMaxTest if (dbEntity == null) return; try { - PMaxTestParams tmp = (PMaxTestParams)(new XmlSerializer(typeof(PMaxTestParams))) - .Deserialize(new StringReader(dbEntity.Parameters)); + PMaxTestParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as PMaxTestParams; testParamsEntity = dbEntity; componentName = dbEntity.CmpntName; test = dbEntity.Test; - tmp.CopyContentTo(this); + if (tmp != null) tmp.CopyContentTo(this); } catch { diff --git a/TestBenchFramework/BenchControl/TestMethods/PMaxTest/TestMethodCfg.cs b/TestBenchFramework/BenchControl/TestMethods/PMaxTest/TestMethodCfg.cs index b9a150ee6..83e35b3a5 100644 --- a/TestBenchFramework/BenchControl/TestMethods/PMaxTest/TestMethodCfg.cs +++ b/TestBenchFramework/BenchControl/TestMethods/PMaxTest/TestMethodCfg.cs @@ -12,6 +12,9 @@ namespace TBF.BenchControl.TestMethods.PMaxTest { public class TestMethodCfg : ComponentCfgBase, Generic.IComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TestMethodCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new TestMethodCfgCtrl(); } /// Test parameters diff --git a/TestBenchFramework/BenchControl/TestMethods/PMaxTest/TestMethodFactory.cs b/TestBenchFramework/BenchControl/TestMethods/PMaxTest/TestMethodFactory.cs index a4f196b10..f1adce069 100644 --- a/TestBenchFramework/BenchControl/TestMethods/PMaxTest/TestMethodFactory.cs +++ b/TestBenchFramework/BenchControl/TestMethods/PMaxTest/TestMethodFactory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.TestMethods.PMaxTest public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(TestMethodCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(TestMethodCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/TestMethods/ReferenceFlowmeterCalibration/TestMethodFactory.cs b/TestBenchFramework/BenchControl/TestMethods/ReferenceFlowmeterCalibration/TestMethodFactory.cs index 8e413ea92..39b4fbbfc 100644 --- a/TestBenchFramework/BenchControl/TestMethods/ReferenceFlowmeterCalibration/TestMethodFactory.cs +++ b/TestBenchFramework/BenchControl/TestMethods/ReferenceFlowmeterCalibration/TestMethodFactory.cs @@ -21,7 +21,7 @@ namespace TBF.BenchControl.TestMethods.ReferenceFlowmeterCalibration public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(TestMethodCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(TestMethodCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/TestMethods/RoiDetection/RoiDetectionCfg.cs b/TestBenchFramework/BenchControl/TestMethods/RoiDetection/RoiDetectionCfg.cs index caf327c28..931d4aa1e 100644 --- a/TestBenchFramework/BenchControl/TestMethods/RoiDetection/RoiDetectionCfg.cs +++ b/TestBenchFramework/BenchControl/TestMethods/RoiDetection/RoiDetectionCfg.cs @@ -11,6 +11,9 @@ namespace TBF.BenchControl.TestMethods.RoiDetection { public class RoiDetectionCfg : ComponentCfgBase, Generic.IComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(RoiDetectionCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new RoiDetectionCfgCtrl(); } /// Private parameterless constructor invoked by all other (public) constructors diff --git a/TestBenchFramework/BenchControl/TestMethods/RoiDetection/RoiDetectionFactory.cs b/TestBenchFramework/BenchControl/TestMethods/RoiDetection/RoiDetectionFactory.cs index b0b5bd939..e62b65b5f 100644 --- a/TestBenchFramework/BenchControl/TestMethods/RoiDetection/RoiDetectionFactory.cs +++ b/TestBenchFramework/BenchControl/TestMethods/RoiDetection/RoiDetectionFactory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.TestMethods.RoiDetection public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(RoiDetectionCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(RoiDetectionCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/TestMethodCfg.cs b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/TestMethodCfg.cs index 6ad8ee562..10ce22ecb 100644 --- a/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/TestMethodCfg.cs +++ b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/TestMethodCfg.cs @@ -12,6 +12,9 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication { public class TestMethodCfg : ComponentCfgBase, Generic.IComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TestMethodCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new TestMethodCfgCtrl(); } /// diff --git a/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/TestMethodFactory.cs b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/TestMethodFactory.cs index 6e1b695e8..d2897b1fd 100644 --- a/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/TestMethodFactory.cs +++ b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/TestMethodFactory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(TestMethodCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(TestMethodCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlCommunicationParams.cs b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlCommunicationParams.cs index 87632cb00..abdc8f920 100644 --- a/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlCommunicationParams.cs +++ b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlCommunicationParams.cs @@ -13,6 +13,9 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication { public class iPerlCommunicationParams : TestParamsBase, IParamsProvider, ITestParams { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(iPerlCommunicationParams) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public string Activity; /// Communication activity public bool SimultWithPrevious; public bool SimultWithNext; @@ -96,14 +99,13 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication if (dbEntity == null) return; try { - iPerlCommunicationParams tmp = (iPerlCommunicationParams)(new XmlSerializer(typeof(iPerlCommunicationParams))) - .Deserialize(new StringReader(dbEntity.Parameters)); + iPerlCommunicationParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as iPerlCommunicationParams; testParamsEntity = dbEntity; componentName = dbEntity.CmpntName; test = dbEntity.Test; - tmp.CopyContentTo(this); + if (tmp != null) tmp.CopyContentTo(this); } catch { diff --git a/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlHead/Factory.cs b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlHead/Factory.cs index e84ca6c08..12e582c67 100644 --- a/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlHead/Factory.cs +++ b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlHead/Factory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication.iPerlHead public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(IperlHeadCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(IperlHeadCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlHead/IperlHeadCfg.cs b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlHead/IperlHeadCfg.cs index 025961f5e..938d71110 100644 --- a/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlHead/IperlHeadCfg.cs +++ b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlHead/IperlHeadCfg.cs @@ -15,6 +15,9 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication.iPerlHead { public class IperlHeadCfg : ComponentCfgBase, Generic.IComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(IperlHeadCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new IperlHeadCfgCtrl(); } /// diff --git a/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlHead/ProcParams.cs b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlHead/ProcParams.cs index ed860c806..cfab5de4a 100644 --- a/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlHead/ProcParams.cs +++ b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlHead/ProcParams.cs @@ -13,6 +13,9 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication.iPerlHead { public class ProcParams : ProcedureParamsBase, IParamsProvider, IProcedureParams { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(ProcParams) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public MeterType MeterType; public int FactorLimitLo; /// Lower limit for the calibration factor public int FactorLimitHi; /// Upper limit for the calibration factor @@ -135,14 +138,13 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication.iPerlHead if (dbEntity == null) return; try { - ProcParams tmp = (ProcParams)(new XmlSerializer(typeof(ProcParams))) - .Deserialize(new StringReader(dbEntity.Parameters)); + ProcParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as ProcParams; procedureParamsEntity = dbEntity; componentName = dbEntity.CmpntName; procedure = dbEntity.Procedure; - tmp.CopyContentTo(this); + if (tmp != null) tmp.CopyContentTo(this); } catch { diff --git a/TestBenchFramework/BenchControl/TestParamsBase.cs b/TestBenchFramework/BenchControl/TestParamsBase.cs index 3904e2b7f..afebe1556 100644 --- a/TestBenchFramework/BenchControl/TestParamsBase.cs +++ b/TestBenchFramework/BenchControl/TestParamsBase.cs @@ -1,5 +1,5 @@ /// -/// Copyright (c) 2013-2015 Sensus Metering Systems +/// Copyright (c) 2013-2017 Sensus Metering Systems /// using System; using System.Collections.Generic; @@ -14,6 +14,8 @@ namespace TBF.BenchControl { protected ComponentTest testParamsEntity; + protected virtual XmlSerializer GetSerializer() { return new XmlSerializer(GetType()); } + public string ComponentName { get { return componentName; } } protected string componentName; @@ -63,7 +65,7 @@ namespace TBF.BenchControl using (var writer = new StringWriter()) { /// Serialize this class with parameters - (new XmlSerializer(GetType())).Serialize(writer, this); + GetSerializer().Serialize(writer, this); /// Create and return the ComponentTest entity ComponentTest entity = new ComponentTest(); @@ -79,7 +81,7 @@ namespace TBF.BenchControl using (var writer = new StringWriter()) { /// Serialize this class and update the entity - (new XmlSerializer(GetType())).Serialize(writer, this); + GetSerializer().Serialize(writer, this); testParamsEntity.Parameters = writer.ToString(); testParamsEntity.CmpntName = componentName; testParamsEntity.Test = test; diff --git a/TestBenchFramework/BenchControl/WaterMeters/Munich/ProcParams.cs b/TestBenchFramework/BenchControl/WaterMeters/Munich/ProcParams.cs index 86729218e..908c84b13 100644 --- a/TestBenchFramework/BenchControl/WaterMeters/Munich/ProcParams.cs +++ b/TestBenchFramework/BenchControl/WaterMeters/Munich/ProcParams.cs @@ -13,7 +13,10 @@ namespace TBF.BenchControl.WaterMeters.Munich { public class ProcParams : ProcedureParamsBase, IParamsProvider, IProcedureParams { - public string ProductName; /// Znak fabryczny (PL) + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(ProcParams) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + + public string ProductName; /// Znak fabryczny (PL) public string Producer; /// Producent (PL), Hersteller (D) public float DN; public float L; /// stavebná dĺžka [mm] @@ -145,14 +148,13 @@ namespace TBF.BenchControl.WaterMeters.Munich if (dbEntity == null) return; try { - ProcParams tmp = (ProcParams)(new XmlSerializer(typeof(ProcParams))) - .Deserialize(new StringReader(dbEntity.Parameters)); + ProcParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as ProcParams; procedureParamsEntity = dbEntity; componentName = dbEntity.CmpntName; procedure = dbEntity.Procedure; - tmp.CopyContentTo(this); + if (tmp != null) tmp.CopyContentTo(this); } catch { diff --git a/TestBenchFramework/BenchControl/WaterMeters/Munich/WaterMeterCfg.cs b/TestBenchFramework/BenchControl/WaterMeters/Munich/WaterMeterCfg.cs index 25adea656..7a48eb175 100644 --- a/TestBenchFramework/BenchControl/WaterMeters/Munich/WaterMeterCfg.cs +++ b/TestBenchFramework/BenchControl/WaterMeters/Munich/WaterMeterCfg.cs @@ -13,6 +13,9 @@ namespace TBF.BenchControl.WaterMeters.Munich { public class WaterMeterCfg : ComponentCfgBase, Generic.IComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(WaterMeterCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new WaterMeterCfgCtrl(); } /// Procedure parameters diff --git a/TestBenchFramework/BenchControl/WaterMeters/Munich/WaterMeterFactory.cs b/TestBenchFramework/BenchControl/WaterMeters/Munich/WaterMeterFactory.cs index d621f7a24..85055821d 100644 --- a/TestBenchFramework/BenchControl/WaterMeters/Munich/WaterMeterFactory.cs +++ b/TestBenchFramework/BenchControl/WaterMeters/Munich/WaterMeterFactory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.WaterMeters.Munich public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(WaterMeterCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(WaterMeterCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/BenchControl/WaterMeters/WaterMeter/ProcParams.cs b/TestBenchFramework/BenchControl/WaterMeters/WaterMeter/ProcParams.cs index 89e1df446..fa9ff5aae 100644 --- a/TestBenchFramework/BenchControl/WaterMeters/WaterMeter/ProcParams.cs +++ b/TestBenchFramework/BenchControl/WaterMeters/WaterMeter/ProcParams.cs @@ -13,7 +13,11 @@ namespace TBF.BenchControl.WaterMeters.WaterMeter { public class ProcParams : ProcedureParamsBase, IParamsProvider, IProcedureParams { - public string ProductName; /// Znak fabryczny (PL) + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(ProcParams) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + + + public string ProductName; /// Znak fabryczny (PL) public string Producer; /// Producent (PL), Hersteller (D) public float DN; @@ -306,14 +310,13 @@ namespace TBF.BenchControl.WaterMeters.WaterMeter if (dbEntity == null) return; try { - ProcParams tmp = (ProcParams)(new XmlSerializer(typeof(ProcParams))) - .Deserialize(new StringReader(dbEntity.Parameters)); + ProcParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as ProcParams; procedureParamsEntity = dbEntity; componentName = dbEntity.CmpntName; procedure = dbEntity.Procedure; - tmp.CopyContentTo(this); + if (tmp != null) tmp.CopyContentTo(this); } catch { diff --git a/TestBenchFramework/BenchControl/WaterMeters/WaterMeter/WaterMeterCfg.cs b/TestBenchFramework/BenchControl/WaterMeters/WaterMeter/WaterMeterCfg.cs index 40e976042..e846e93ab 100644 --- a/TestBenchFramework/BenchControl/WaterMeters/WaterMeter/WaterMeterCfg.cs +++ b/TestBenchFramework/BenchControl/WaterMeters/WaterMeter/WaterMeterCfg.cs @@ -10,6 +10,9 @@ namespace TBF.BenchControl.WaterMeters.WaterMeter { public class WaterMeterCfg : ComponentCfgBase, Generic.IComponentCfg { + public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(WaterMeterCfg) })[0]; + protected override XmlSerializer GetSerializer() { return Serializer; } + public IComponentCfgCtrl GetControl() { return new WaterMeterCfgCtrl(); } /// Procedure parameters diff --git a/TestBenchFramework/BenchControl/WaterMeters/WaterMeter/WaterMeterFactory.cs b/TestBenchFramework/BenchControl/WaterMeters/WaterMeter/WaterMeterFactory.cs index dca767b3b..59bfa169c 100644 --- a/TestBenchFramework/BenchControl/WaterMeters/WaterMeter/WaterMeterFactory.cs +++ b/TestBenchFramework/BenchControl/WaterMeters/WaterMeter/WaterMeterFactory.cs @@ -20,7 +20,7 @@ namespace TBF.BenchControl.WaterMeters.WaterMeter public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(WaterMeterCfg), component, this); + return ComponentCfgBase.CreateFromDbEntity(WaterMeterCfg.Serializer, component, this); } } } diff --git a/TestBenchFramework/LocalSettings.cs b/TestBenchFramework/LocalSettings.cs index d89b1e622..e287f84d3 100644 --- a/TestBenchFramework/LocalSettings.cs +++ b/TestBenchFramework/LocalSettings.cs @@ -18,7 +18,9 @@ namespace TBF [XmlRootAttribute("TestBenchFramework")] public class LocalSettings { - /// + static XmlSerializer serializer = XmlSerializer.FromTypes(new[] { typeof(LocalSettings) })[0]; + + /// /// User interface language (used as CultureInfo(..) constructor argument). /// public string Language = "en"; @@ -236,9 +238,7 @@ namespace TBF { using (TextReader reader = new StreamReader(fileName)) { - LocalSettings ls = (new XmlSerializer(typeof(LocalSettings))).Deserialize(reader) as LocalSettings; - // Copy the settings just in case De-serialize() completes OK - return ls; + return serializer.Deserialize(reader) as LocalSettings; } } catch (Exception e) @@ -257,7 +257,7 @@ namespace TBF { using (TextWriter writer = new StreamWriter(Program.LocalSettingsFileName)) { - (new XmlSerializer(typeof(LocalSettings))).Serialize(writer, this); + serializer.Serialize(writer, this); } } catch (Exception e) diff --git a/UserManagement/LocalSettings.cs b/UserManagement/LocalSettings.cs index 7c856c98c..e319d6b34 100644 --- a/UserManagement/LocalSettings.cs +++ b/UserManagement/LocalSettings.cs @@ -18,7 +18,9 @@ namespace UserManagement [XmlRootAttribute("UserManagement")] public class LocalSettings { - /// + static XmlSerializer serializer = XmlSerializer.FromTypes(new[] { typeof(LocalSettings) })[0]; + + /// /// User interface language (used as CultureInfo(..) constructor argument). /// public string Language = "en"; @@ -52,10 +54,8 @@ namespace UserManagement { using (TextReader reader = new StreamReader(fileName)) { - LocalSettings ls = (new XmlSerializer(typeof(LocalSettings))).Deserialize(reader) as LocalSettings; - // Copy the settings just in case De-serialize() completes OK - return ls; - } + return serializer.Deserialize(reader) as LocalSettings; + } } catch (Exception e) { @@ -73,7 +73,7 @@ namespace UserManagement { using (TextWriter writer = new StreamWriter(Program.LocalSettingsFileName)) { - (new XmlSerializer(typeof(LocalSettings))).Serialize(writer, this); + serializer.Serialize(writer, this); } } catch (Exception e)