You have to create a message that reflects the information from System.Version that interests you. There is no direct mapping, you can achieve something close by writing an implicit cast operator or an extension method if you don't want to do it manually and have it in many places.
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/implicit https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/extension-methods Keep in mind that your protos are cross platform compatible. So string is a reference type in C# (up until 7.3) but not in ProtocolBuffers or a lot of other languages. So if you plan to do more mapping, keep in mind to use google.protobuf.StringValue instead of string, otherwise you will definetly run into NullReferenceExceptions at runtime. server_info.proto message FileVersion { int32 major = 1; int32 minor = 2; int32 build = 3; int32 revision = 4; } message ServerInfo { FileVersion file_version = 1; } ServerInfo.cs (just make sure to use the correct namespace maching your package from ServerInfo.proto) partial class FileVersion { public static implicit operator System.Version(FileVersion v) { return new System.Version(v.Major, v.Minor, v.Build, v.Revision); } public static implicit operator FileVersion(System.Version v) { return new FileVersion { Major = v.Major, Minor = v.Minor, Build = v.Build, Revision = v.Revision }; } } -- You received this message because you are subscribed to the Google Groups "grpc.io" 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 https://groups.google.com/group/grpc-io. To view this discussion on the web visit https://groups.google.com/d/msgid/grpc-io/8b8bbb88-46ac-44ad-8c72-c7eb4f599f73%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
