Validate C# json/object-api options (#6985)
This commit is contained in:
parent
c555ee8fac
commit
b78002ff3e
|
@ -180,7 +180,8 @@ To use:
|
||||||
An additional feature of the object API is the ability to allow you to
|
An additional feature of the object API is the ability to allow you to
|
||||||
serialize & deserialize a JSON text.
|
serialize & deserialize a JSON text.
|
||||||
To use Json Serialization, add `--cs-gen-json-serializer` option to `flatc` and
|
To use Json Serialization, add `--cs-gen-json-serializer` option to `flatc` and
|
||||||
add `Newtonsoft.Json` nuget package to csproj.
|
add `Newtonsoft.Json` nuget package to csproj. This requires explicitly setting
|
||||||
|
the `--gen-object-api` option as well.
|
||||||
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cs}
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cs}
|
||||||
// Deserialize MonsterT from json
|
// Deserialize MonsterT from json
|
||||||
|
@ -192,7 +193,7 @@ add `Newtonsoft.Json` nuget package to csproj.
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
* Limitation
|
* Limitation
|
||||||
* `hash` attribute currentry not supported.
|
* `hash` attribute currently not supported.
|
||||||
* NuGet package Dependency
|
* NuGet package Dependency
|
||||||
* [Newtonsoft.Json](https://github.com/JamesNK/Newtonsoft.Json)
|
* [Newtonsoft.Json](https://github.com/JamesNK/Newtonsoft.Json)
|
||||||
|
|
||||||
|
|
|
@ -74,7 +74,7 @@ def flatc(
|
||||||
cmd += [schema] if isinstance(schema, str) else schema
|
cmd += [schema] if isinstance(schema, str) else schema
|
||||||
if data:
|
if data:
|
||||||
cmd += [data] if isinstance(data, str) else data
|
cmd += [data] if isinstance(data, str) else data
|
||||||
subprocess.run(cmd, cwd=cwd)
|
result = subprocess.run(cmd, cwd=cwd, check=True)
|
||||||
|
|
||||||
|
|
||||||
# Glob a pattern relative to file path
|
# Glob a pattern relative to file path
|
||||||
|
|
|
@ -184,6 +184,8 @@ std::string FlatCompiler::GetUsageString(const char *program_name) const {
|
||||||
" data using schema-less FlexBuffers.\n"
|
" data using schema-less FlexBuffers.\n"
|
||||||
" --no-warnings Inhibit all warning messages.\n"
|
" --no-warnings Inhibit all warning messages.\n"
|
||||||
" --cs-global-alias Prepend \"global::\" to all user generated csharp classes and structs.\n"
|
" --cs-global-alias Prepend \"global::\" to all user generated csharp classes and structs.\n"
|
||||||
|
" --cs-gen-json-serializer Allows (de)serialization of JSON text in the Object\n"
|
||||||
|
" API. (requires --gen-object-api).\n"
|
||||||
"FILEs may be schemas (must end in .fbs), binary schemas (must end in .bfbs),\n"
|
"FILEs may be schemas (must end in .fbs), binary schemas (must end in .bfbs),\n"
|
||||||
"or JSON files (conforming to preceding schema). FILEs after the -- must be\n"
|
"or JSON files (conforming to preceding schema). FILEs after the -- must be\n"
|
||||||
"binary flatbuffer format files.\n"
|
"binary flatbuffer format files.\n"
|
||||||
|
@ -435,6 +437,12 @@ int FlatCompiler::Compile(int argc, const char **argv) {
|
||||||
Error("no options: specify at least one generator.", true);
|
Error("no options: specify at least one generator.", true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (opts.cs_gen_json_serializer && !opts.generate_object_based_api) {
|
||||||
|
Error(
|
||||||
|
"--cs-gen-json-serializer requires --gen-object-api to be set as "
|
||||||
|
"well.");
|
||||||
|
}
|
||||||
|
|
||||||
flatbuffers::Parser conform_parser;
|
flatbuffers::Parser conform_parser;
|
||||||
if (!conform_to_schema.empty()) {
|
if (!conform_to_schema.empty()) {
|
||||||
std::string contents;
|
std::string contents;
|
||||||
|
|
Loading…
Reference in New Issue