Firstly, I'd encourage you not to do that: a) this opaque binary data goes against the general aims of protos being cross-platform. That may not be a requirement for you at the moment, but I'd urge you to at least bear it in mind b) unless you really need DateTime's somewhat odd semantics (http://blog.nodatime.org/2011/08/what-wrong-with-datetime-anyway.html) I'd encourage you to use the well-known Timestamp type. There are conversions available within that already, and it has a custom format which is basically ISO-8601.
As an aside, at some point after Noda Time 2.0 has landed, I expect to create a NodaTime.Protobuf nuget package which adds conversions between Instant and Timestamp, and NodaTime.Duration and Google.Protobuf.WellKnownTypes.Duration too. The nanosecond precision in protobuf was a contributing factor to the decision to use nanosecond precision in Noda Time 2.0. Just something to bear in mind if you were already considering Noda Time. Now, all that aside, I can see cases where it might make sense. I've filed https://github.com/google/protobuf/issues/933 to capture this, partly so that others could add their use cases to it. The proposed way of implementing it would be a somewhat grotty hack though, using a partial method with a ref parameter. Other ideas would be welcome... Jon On Tuesday, 3 November 2015 02:18:27 UTC, Teddy Zhang wrote: > > I need to override the ToString behavior in C# to make it human readable. > > E.g. I defined a message type to represent DateTime in C#, and then write > a partial class to make it be able to convert from/to DateTime. > >> message ProtoDateTime >> >> { >> >> sfixed64 BinaryData = 1; >> >> } >> > > However, the default ToString() doesn't generate human readable contents. > > Currently the default implantation is (codegen code): > > public override string ToString() { > > return pb::JsonFormatter.Default.Format(this); > > } > Which will generate something like this, which is not readable. > { "dateTime": { "binaryData": "5247507155853679530" } } > > Is there a way to override this behavior? > If not, is there a plan to support this? Thanks. > > -- You received this message because you are subscribed to the Google Groups "Protocol Buffers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/protobuf. For more options, visit https://groups.google.com/d/optout.
