aboutsummaryrefslogtreecommitdiffhomepage
path: root/csharp/src/Google.Protobuf
Commit message (Collapse)AuthorAge
* Code review fixesGravatar alien2016-03-29
|
* csharp: add support for the json_name optionGravatar alien2016-03-18
| | | | | Conflicts: csharp/src/Google.Protobuf/JsonFormatter.cs
* Replace StringBuilder with TextWriter in JsonFormatterGravatar avgweb2016-03-06
|
* Implement IDisposable for CodedInputStream and CodedOutputStreamGravatar Jon Skeet2016-02-29
| | | | | This fixes issue #679 and issue #1282. (The .gitignore change is just around ncrunch; I can put it in a separate PR if you really want.)
* Validate that end-group tags match their corresponding start-group tagsGravatar Jon Skeet2016-02-15
| | | | | | | | This detects: - An end-group tag with the wrong field number (doesn't match the start-group field) - An end-group tag with no preceding start-group tag Fixes issue #688.
* Merge pull request #1218 from jskeet/nuspec-dependenciesGravatar Jan Tattermusch2016-02-11
|\ | | | | nuspec dependency fixes
* | Use checked-in key to build ReleaseSignedGravatar Jan Tattermusch2016-02-09
| |
| * nuspec dependency fixesGravatar Jon Skeet2016-02-08
|/ | | | | | | Explicitly don't add any dependencies for "old" platforms, to avoid unnecessary dependencies in those cases. Fixes issue #1203.
* Generated code changes from previous commitGravatar Jon Skeet2016-02-04
|
* Rename Preconditions to ProtoPreconditionsGravatar Jon Skeet2016-02-04
| | | | (Generated code changes in next commit.)
* Generated code for GeneratedCodeInfo changeGravatar Jon Skeet2016-02-04
|
* Rename GeneratedCodeInfo to GeneratedClrTypeInfoGravatar Jon Skeet2016-02-04
| | | | | | | Recently, descriptor.proto gained a GeneratedCodeInfo message, which means the generated code conflicts with our type. Unfortunately this affects codegen as well, although this is a part of the public API which is very unlikely to affect hand-written code. Generated code changes in next commit.
* Ensure that FieldMask, Timestamp and Duration ToString() calls don't throwGravatar Jon Skeet2016-01-20
| | | | | | | | | | | | | The usage of ICustomDiagnosticMessage here is non-essential - ToDiagnosticString doesn't actually get called by ToString() in this case, due to JsonFormatter code. It was intended to make it clearer that it *did* have a custom format... but then arguably I should do the same for Value, Struct, Any etc. Moving some of the code out of JsonFormatter and into Duration/Timestamp/FieldMask likewise feels somewhat nice, somewhat nasty... basically there are JSON-specific bits of formatting, but also domain-specific bits of computation. <sigh> Thoughts welcome.
* Merge pull request #1096 from jskeet/custom-to-stringGravatar Jan Tattermusch2016-01-19
|\ | | | | Introduce ICustomDiagnosticMessage to allow for custom string formatting
* | Make sure thatGravatar Jon Skeet2016-01-15
| | | | | | | | | | | | "valueField": null is parsed appropriately, i.e. that it remembers that the field is set.
* | Reject JSON containing the same oneof field twiceGravatar Jon Skeet2016-01-15
| |
* | Change handling of unknown enums: we now write out the value as a number.Gravatar Jon Skeet2016-01-15
| |
* | Extra strictness for FieldMask conversionGravatar Jon Skeet2016-01-15
| |
* | Allow the original field name (rather than camel-cased) when parsing JSONGravatar Jon Skeet2016-01-15
| |
* | Fixes to JSON timestamp/duration representationsGravatar Jon Skeet2016-01-15
| |
* | Prohibit null values in repeated and map fields in JSONGravatar Jon Skeet2016-01-15
| |
* | Throw a better exception when invalid base64 is detected in JSONGravatar Jon Skeet2016-01-15
| |
* | Support (and test) numeric enum parsing in JSONGravatar Jon Skeet2016-01-15
| |
* | Fix handling of repeated wrappersGravatar Jon Skeet2016-01-15
| | | | | | | | | | Previously we were incorrectly packing wrapper types. This also refactors FieldCodec a bit as well, using more C# 6-ness.
* | JSON conformance test fixesGravatar Jon Skeet2016-01-13
| | | | | | | | | | - Spot an Any without a type URL - In the conformance test runner, catch exceptions due to generally-invalid JSON
| * Introduce ICustomDiagnosticMessage to allow for custom string formattingGravatar Jon Skeet2016-01-13
|/ | | | This fixes issue #933, effectively.
* Prohibit null values in map fieldsGravatar Jon Skeet2016-01-11
| | | | | On deserialization, missing values for message types are replaced with a "default" message.
* Merge pull request #1098 from jskeet/wkt-jsonGravatar Jan Tattermusch2016-01-08
|\ | | | | Ensure all formatted well-known-type values are valid JSON
* \ Merge pull request #1088 from jskeet/codec-pruningGravatar Jan Tattermusch2016-01-08
|\ \ | | | | | | Remove unused method in FieldCodec.
| | * Ensure all formatted well-known-type values are valid JSONGravatar Jon Skeet2016-01-06
| | | | | | | | | | | | | | | | | | | | | This involves quoting timestamp/duration/field-mask values, even when they're not in fields. It's better for consistency. Fixes issue #1097.
* | | Improve number handling in JSON parsingGravatar Jon Skeet2016-01-06
| |/ |/| | | | | | | | | - Tighten up on Infinity/NaN handling in terms of whitespace handling (and test casing) - Validate that values are genuinely integers when they've been parsed from a JSON number (ignoring the fact that 1.0000000000000000001 == 1 as a double...) - Allow exponents and decimal points in string representations
| * Remove unused method in FieldCodec.Gravatar Jon Skeet2016-01-05
|/ | | | (The method was last used a very long time ago, if ever.)
* add reference generator dependencyGravatar Jan Tattermusch2015-12-17
|
* Merge pull request #1049 from jskeet/any-formatGravatar Jon Skeet2015-12-17
|\ | | | | Handle Any formatting for diagnostic purposes
* | make nuget package support CoreCLRGravatar Jan Tattermusch2015-12-16
| |
| * Generated code changes from previous commit.Gravatar Jon Skeet2015-12-15
| |
| * Make ToString() valid without a type registryGravatar Jon Skeet2015-12-15
|/ | | | | | | | | | | | | | | This addresses issue #1008, by creating a JsonFormatter which is private and only different to JsonFormatter.Default in terms of reference equality. Other plausible designs: - The same, but expose the diagnostic-only formatter - Add something to settings to say "I don't have a type registry at all" - Change the behaviour of JsonFormatter.Default (bad idea IMO, as we really *don't* want the result of this used as regular JSON to be parsed) Note that just trying to find a separate fix to issue #933 and using that to override Any.ToString() differently wouldn't work for messages that *contain* an Any. Generated code changes follow in the next commit.
* Handle JSON parsing for Any.Gravatar Jon Skeet2015-12-02
| | | | This required a rework of the tokenizer to allow for a "replaying" tokenizer, basically in case the @type value comes after the data itself. This rework is nice in some ways (all the pushback and object depth logic in one place) but is a little fragile in terms of token push-back when using the replay tokenizer. It'll be fine for the scenario we need it for, but we should be careful...
* JSON formatting for Any.Gravatar Jon Skeet2015-12-02
|
* Generated code changes for previous commit (basically ↵Gravatar Jon Skeet2015-11-22
| | | | InternalBuildGeneratedFileFrom => FromGeneratedCode)
* Tidy up reflection in advance of attempting to implement DynamicMessage.Gravatar Jon Skeet2015-11-22
| | | | | | | | | 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.
* Added the type registry in advance of implementing Any support.Gravatar Jon Skeet2015-11-21
| | | | Biting off just this bit first as I don't need the changes from a previous PR for this part.
* Finished an implementation commentGravatar Jon Skeet2015-11-19
|
* Generated code from previous commit.Gravatar Jon Skeet2015-11-19
|
* Introduce a Parser property into MessageDescriptor, and populate it from ↵Gravatar Jon Skeet2015-11-19
| | | | | | generated types. Generated code coming in next commit - in a subsequent PR I want to do a bit of renaming and redocumenting around this, in anticipation of DynamicMessage.
* Generated code changes and manual changes for previous commit.Gravatar Jon Skeet2015-11-09
|
* Generated code for previous commit.Gravatar Jon Skeet2015-11-06
|
* Merge pull request #941 from jskeet/recursion-limitGravatar Jan Tattermusch2015-11-05
|\ | | | | Add recursion limit handling to JSON parsing.
| * Reimplement JSON recursion by detecting the depth in the tokenizer.Gravatar Jon Skeet2015-11-05
| | | | | | | | Added a TODO around a possible change to the tokenizer API, changing PushBack(token) into just Rewind() or something similar.
* | Merge pull request #940 from jskeet/json-namesGravatar Jon Skeet2015-11-05
|\ \ | | | | | | Move the creation of the "fields by JSON name" dictionary to the descriptor