public object DecodeField(string value) { CustomField48 cf = null; if (value != null) { if (value.Length == 1 && value[0] == '|') { cf = new CustomField48(); } else { var idx = value.LastIndexOf('|'); if (idx < 0 || idx == value.Length - 1) { throw new ArgumentException($"Invalid data '{value}' for field 48"); } cf = new CustomField48 { V1 = value.Substring(0, idx), V2 = int.Parse(value.Substring(idx + 1)) }; } } return(cf); }
public void TestTemplating() { IsoMessage iso1 = mf.NewMessage(0x200); IsoMessage iso2 = mf.NewMessage(0x200); Assert.NotSame(iso1, iso2); Assert.Equal(iso1.GetObjectValue(3), iso2.GetObjectValue(3)); Assert.NotSame(iso1.GetField(3), iso2.GetField(3)); Assert.NotSame(iso1.GetField(48), iso2.GetField(48)); CustomField48 cf48_1 = (CustomField48)iso1.GetObjectValue(48); int origv = cf48_1.V2; cf48_1.V2 = (origv + 1000); CustomField48 cf48_2 = (CustomField48)iso2.GetObjectValue(48); Assert.Same(cf48_1, cf48_2); Assert.Equal(cf48_2.V2, origv + 1000); }