diff options
author | Jon Skeet <jonskeet@google.com> | 2015-11-19 17:13:38 +0000 |
---|---|---|
committer | Jon Skeet <jonskeet@google.com> | 2015-11-22 16:25:44 +0000 |
commit | 72ec33676fd40ccfe719ace162fcf859ae9251bc (patch) | |
tree | a90f4be5e939a8a55175aa1d4e8e54c7f919feb1 /csharp/src/Google.Protobuf/JsonParser.cs | |
parent | d6202a9b8948d5a2d5436e3b35b175ed9b8a9fd1 (diff) |
Tidy up reflection in advance of attempting to implement DynamicMessage.
There are corner cases where MessageDescriptor.{ClrType,Parser} will return null, and these are now documented. However, normally they *should* be implemented, even for descriptors of for dynamic messages. Ditto FieldDescriptor.Accessor.
We'll still need a fair amount of work to implement dynamic messages, but this change means that the public API will be remain intact.
Additionally, this change starts making use of C# 6 features in the files that it touches. This is far from exhaustive, and later PRs will have more.
Generated code changes coming in the next commit.
Diffstat (limited to 'csharp/src/Google.Protobuf/JsonParser.cs')
-rw-r--r-- | csharp/src/Google.Protobuf/JsonParser.cs | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/csharp/src/Google.Protobuf/JsonParser.cs b/csharp/src/Google.Protobuf/JsonParser.cs index b4a35d7c..2019029b 100644 --- a/csharp/src/Google.Protobuf/JsonParser.cs +++ b/csharp/src/Google.Protobuf/JsonParser.cs @@ -291,8 +291,7 @@ namespace Google.Protobuf { // Parse wrapper types as their constituent types. // TODO: What does this mean for null? - // TODO: Detect this differently when we have dynamic messages, and put it in one place... - if (field.MessageType.IsWellKnownType && field.MessageType.File == Int32Value.Descriptor.File) + if (field.MessageType.IsWrapperType) { field = field.MessageType.Fields[WrappersReflection.WrapperValueFieldNumber]; fieldType = field.FieldType; |