示例#1
0
        public void JsonNameParseTest()
        {
            var settings = new JsonParser.Settings(10, TypeRegistry.FromFiles(UnittestIssuesReflection.Descriptor));
            var parser = new JsonParser(settings);

            // It is safe to use either original field name or explicitly specified json_name
            Assert.AreEqual(new TestJsonName { Name = "test", Description = "test2", Guid = "test3" },
                parser.Parse<TestJsonName>("{ \"name\": \"test\", \"desc\": \"test2\", \"guid\": \"test3\" }"));
        }
        public override async Task <InputFormatterResult> ReadRequestBodyAsync(InputFormatterContext context, Encoding encoding)
        {
            HttpRequest request   = context.HttpContext.Request;
            Type        type      = context.ModelType;
            IMessage    protoType = (IMessage)Activator.CreateInstance(type);

            JsonParser.Settings settings = new JsonParser.Settings(100);
            JsonParser          parser   = new JsonParser(settings);

            using (TextReader reader = new StreamReader(request.Body, encoding)) {
                protoType = parser.Parse(reader, protoType.Descriptor);
            }

            return(await InputFormatterResult.SuccessAsync(protoType));
        }