@Bulb After looking back at my test projects, turns out I was incorrectly recalling in the case of strings: Nullable strings need a weird declaration in the .proto
file, but they end up as string
in the C#.
Nontheless, I was right about DateTime, which ends up replaced with Google.Protobuf.WellKnownTypes.Timestamp
.
(my test does not include a nullable integer, so I'll have to check again what it does with those).
Edit: Apparently there's also a type that maps to an actual nullable int
, but it comes with a WTF of its own anyway:
grpc compiler claimed that he has no information on google.protobuf.Int32Wrapper type. I have found it is actually called google.protobuf.Int32Value, though google calls it Int32Wrapper in the docs.
Edit2: Apparently simple array types are no-go, though. They seem to be replaced with Google.Protobuf.Collections.RepeatedField<>
and other non-standard collections.
I also remember a couple other problems that made conversion harder for me: The mandate that methods have only one parameter (annoying but ultimately trivial to work around), and more importantly, the complete and total lack of session support.