public override string WriteDataString() { var asJson = JsonConvert.SerializeObject(this); var embedStr = Base16k.ToBase16kString(Embedded); return(asJson.Length.ToString() + ':' + asJson + embedStr); }
public override bool ReadDataString(string data) { var separatorLoc = data.IndexOf(':'); if (separatorLoc == -1) { return(false); } var numSub = data.Substring(0, separatorLoc); var success = int.TryParse(numSub, out int num); if (!success || data.Length < separatorLoc + 1 + num) { return(false); } var jsonStr = data.Substring(separatorLoc + 1, num); var embedStr = data.Substring(separatorLoc + 1 + num); var embedBytes = Base16k.FromBase16kString(embedStr); JsonConvert.PopulateObject(jsonStr, this); Embedded = embedBytes; return(true); }