public void VisitNullableSerialization(string variable, string writer, NullableSerializationNode node, TextBuilder builder) { builder.Write("{0}.Write({1} != null);", writer, variable); builder.NextLine(); builder.WriteIndents(); builder.Write("if({0} != null) ", variable); VisitSerialization(variable + ".Value", writer, node.Serialize, builder); }
protected virtual void VisitNullableDeserialization(string variable, string reader, NullableSerializationNode node, TextBuilder builder) { builder.Write("!{0}.ReadBoolean() ? null : new {1}(", reader, node.TypeName); VisitDeserialization(string.Format("default({0})", node.Serialize.TypeName), reader, node.Serialize, builder); builder.Write(")"); }