public void Decode(IDecoder decoder) { this.name = decoder.GetString(); this.age = decoder.GetInt(); this.height = decoder.GetFloat(); this.weight = decoder.GetDouble(); var subSubValue = decoder.GetObject <SubSubValue>(); if (subSubValue.HasValue) { this.subSubValue = subSubValue.Value; } }