public CodeMemberMethod GenerateSerializeMethod(Type t) { var m = new MethodHelper("_Serialize", typeof(bool), MemberAttributes.Static | MemberAttributes.Final | MemberAttributes.Public); CodeExpression dest = m.Param("destination", typeof(SubArray <byte>), FieldDirection.Ref); CodeExpression value = m.Param("value", t, FieldDirection.In); m.AddAll(SerializeOrReturn(t, dest, value)); m.Return(Expr("true")); return(m.Code); }
public CodeMemberMethod GenerateTryDeserializeMethod(Type t) { var m = new MethodHelper("_TryDeserialize", typeof(bool), MemberAttributes.Public | MemberAttributes.Final | MemberAttributes.Static); m.Param("source", typeof(RecvBuffer), FieldDirection.Ref); m.Param("value", t, FieldDirection.Out); if (IsNullable(t)) { m.Add(Decl("isNull", typeof(bool), Literal(false))); } m.AddAll(DeserializeOrReturn(t, Var("source"), Var("value"))); m.Return("true"); return(m.Code); }