protobuf-net / protobuf-net

Protocol Buffers library for idiomatic .NET
Other
4.65k stars 1.05k forks source link

Question. Can I use code, generated by protobuf-net.Reflection 3.0.101 with protobuf-net 2.4.6 #785

Open ivmazurenko opened 3 years ago

ivmazurenko commented 3 years ago

I have tried to upgrade protobuf-net from 2.4.6 to 3.0.101. But, unfortunately I have runtime issues in Xamarin IOS application.

Thus, I want to downgrade nuget back to 2.4.6, but leave new auto generated by protobuf-net.Reflection 3.0.101 code. It was hardcore issue to switch old code generator to new one, and I want to keep this changes.

So, the question is: Is it safe to use code, generated by protobuf-net.Reflection 3.0.101 with protobuf-net 2.4.6 nuget ?

New generated code have some differences:

  1. EnumPassthru was removed in new version Do I need it in case if I removed all 'remapped' enums?
  2. ProtoEnum was removed in new version Do I need it in case if I removed all 'remapped' enums?
  3. There was a little changes in collections, some lists are arrays for now, and some of them is nullable
  4. Properties like RegistrationTimestampSpecified was switched to methods ShouldSerializeTraderRegistrationTimestamp()
mgravell commented 3 years ago

The generated code doesn't touch any of the internals, so yes: it should be fine AFAIK; if you get any specific problems, let me know - we can perhaps add a "library version" into the code-gen, like how we support different C# versions.

On Sun, 25 Apr 2021, 07:58 ivmazurenko, @.***> wrote:

I have tried to upgrade protobuf-net from 2.4.6 to 3.0.101. But, unfortunately I have runtime issues in Xamarin IOS application.

Thus, I want to downgrade nuget back to 2.4.6, but leave new auto generated by protobuf-net.Reflection 3.0.101 code. It was hardcore issue to switch old code generator to new one, and I want to keep this changes.

So, the question is: Is it safe to use code, generated by protobuf-net.Reflection 3.0.101 with protobuf-net 2.4.6 nuget ?

New generated code have some differences:

  1. EnumPassthru was removed in new version Do I need it in case if I removed all 'remapped' enums?
  2. ProtoEnum was removed in new version Do I need it in case if I removed all 'remapped' enums?
  3. There was a little changes in collections, some lists are arrays for now, and some of them is nullable
  4. Properties like RegistrationTimestampSpecified was switched to methods ShouldSerializeTraderRegistrationTimestamp()

    — You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/protobuf-net/protobuf-net/issues/785, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAEHMGLXAMKILVKNY6BURTTKO4SVANCNFSM43Q6ZXQQ .