1. 19 Dec, 2017 1 commit
  2. 13 Dec, 2017 1 commit
  3. 10 Feb, 2017 1 commit
  4. 20 Apr, 2016 1 commit
  5. 07 Mar, 2016 1 commit
  6. 15 Feb, 2016 1 commit
  7. 13 Jan, 2016 1 commit
  8. 11 Jan, 2016 1 commit
  9. 24 Oct, 2015 1 commit
  10. 08 Aug, 2015 1 commit
  11. 05 Aug, 2015 2 commits
  12. 03 Aug, 2015 1 commit
  13. 30 Jul, 2015 2 commits
  14. 22 Jul, 2015 1 commit
    • Jon Skeet's avatar
      First pass at making field access simpler. · 20bf6a56
      Jon Skeet authored
      This is definitely not ready to ship - I'm "troubled" by the disconnect between a list of fields in declaration order, and a mapping of field accessors by field number/name. Discussion required, but I find that easier when we've got code to look at :)
      20bf6a56
  15. 21 Jul, 2015 1 commit
    • Jon Skeet's avatar
      Revamp to reflection. · 53c399a1
      Jon Skeet authored
      Changes in brief:
      1. Descriptor is now the entry point for all reflection.
      2. IReflectedMessage has gone; there's now a Descriptor property in IMessage, which is explicitly implemented (due to the static property).
      3. FieldAccessorTable has gone away
      4. IFieldAccessor and OneofFieldAccessor still exist; we *could* put the functionality straight into FieldDescriptor and OneofDescriptor... I'm unsure about that.
      5. There's a temporary property MessageDescriptor.FieldAccessorsByFieldNumber to make the test changes small - we probably want this to go away
      6. Discovery for delegates is now via attributes applied to properties and the Clear method of a oneof
      
      I'm happy with 1-3.
      4 I'm unsure about - feedback welcome.
      5 will go away
      6 I'm unsure about, both in design and implementation. Should we have a ProtobufMessageAttribute too? Should we find all the relevant attributes in MessageDescriptor and pass them down, to avoid an O(N^2) scenario?
      
      Generated code changes coming in the next commit.
      53c399a1
  16. 17 Jul, 2015 1 commit
  17. 14 Jul, 2015 1 commit
    • Jon Skeet's avatar
      Generate the well-known types in C# · 739d13d5
      Jon Skeet authored
      This involves:
      - Specifying a namespace in each proto (including ones we'd previously missed)
      - Updating the generation script
      - Changing codegen to implement IReflectedMessage.Fields explicitly (a good thing anyway)
      - Changing reflection tests to take account of the explicit interface implementation
      
      Non-generated code in this commit; generated code to follow
      739d13d5
  18. 10 Jul, 2015 1 commit
  19. 09 Jul, 2015 3 commits
    • Jon Skeet's avatar
      Knock-on effects of moving GetSampleMessage. · 0da4a89c
      Jon Skeet authored
      0da4a89c
    • Jon Skeet's avatar
      Implement reflection properly for fields. · 78ea98f5
      Jon Skeet authored
      - FieldAccessorTable is now non-generic
      - We don't have a static field per message type in the umbrella class. (Message descriptors are accessed via the file descriptor.)
      - Removed the "descriptor assigner" complication from the descriptor fixup; without extensions, we don't need it
      - MapField implements IDictionary (more tests would be good...)
      - RepeatedField implements IList (more tests would be good)
      - Use expression trees to build accessors. (Will need to test this on various platforms... probably need a fallback strategy just using reflection directly.)
      - Added FieldDescriptor.IsMap
      - Added tests for reflection with generated messages
      
      Changes to generated code coming in next commit.
      78ea98f5
    • Jon Skeet's avatar
      Minor fix-ups as suggested in PR #560. · 3cce11ce
      Jon Skeet authored
      - Added new line at the end of SampleEnum
      - Moved GeneratedMessageTest.GetSampleMessage to a new class, SampleMessages, and renamed it to CreateFullTestAllTypes.
      3cce11ce
  20. 30 Jun, 2015 2 commits
    • Jon Skeet's avatar
      Fix copyright lines for all C# code. · ee835a3f
      Jon Skeet authored
      Everything should now be consistent - the only difference between files is the year (aside from generated files).
      
      Fixes issue #531.
      ee835a3f
    • Jon Skeet's avatar
      Tidying up and extra tests. · f34d37a3
      Jon Skeet authored
      This is mostly just making things internal instead of public, removing and reordering a bunch of code in CodedInputStream/CodedOutputStream, and generally tidying up.
      f34d37a3
  21. 26 Jun, 2015 1 commit
    • Jon Skeet's avatar
      Tweaks and more tests for maps · c1283310
      Jon Skeet authored
      - Change the default message hash code to 1 to be consistent with other code
      - Change the empty list/map hash code to 0 as "empty map" is equivalent to "no map"
      - Removed map fields from unittest_proto3.proto
      - Created map_unittest_proto3.proto which is like map_unittest.proto but proto3-only
      - Fixed factory methods in FieldCodec highlighted by using all field types :)
      - Added tests for map serialization:
        - Extra fields within entries
        - Entries with value then key
        - Non-contiguous entries for the same map
        - Multiple entries for the same key
      
      Changes to generated code coming in next commit
      c1283310
  22. 25 Jun, 2015 2 commits
  23. 24 Jun, 2015 1 commit
  24. 23 Jun, 2015 1 commit
  25. 09 Jun, 2015 1 commit
  26. 29 May, 2015 1 commit
  27. 12 May, 2015 1 commit
    • Jon Skeet's avatar
      Convert back to using NUnit, which is now loaded via NuGet. · 90c8932f
      Jon Skeet authored
      This includes the NUnit test adapter which allows NUnit tests to be run under VS without any extra plugins.
      Unfortunate the compatibility tests using the abstract test fixture class show up as "external" tests, and aren't well presented - but they do run.
      90c8932f
  28. 30 Apr, 2015 1 commit
  29. 28 Apr, 2015 1 commit
    • Jon Skeet's avatar
      Updated set of unit tests and unit test protos. · ce66c5f1
      Jon Skeet authored
      This commit includes changes to the C#-specific protos, and rebuilt versions of the "stock" protos.
      The stock protos have been locally updated to have a specific C# namespace, but this is expected to change soon, so hasn't been committed.
      Four areas are currently not tested:
      1) Serialization - we may restore this at some point, possibly optionally.
      2) Services - currently nothing is generated for this; will need to see how it interacts with GRPC
      3) Fields beginning with _{digit} - see https://github.com/google/protobuf/issues/308
      4) Fields with names which conflict with the declaring type in nasty ways - see https://github.com/google/protobuf/issues/309
      ce66c5f1