Skip to content

Commit

Permalink
Update JsonInheritanceConverter.liquid (#1502)
Browse files Browse the repository at this point in the history
* Update JsonInheritanceConverter.liquid

The InheritanceConverters needs to be made public so downstream NSwag Generator can get the DiscriminatorName (i.e. wrapping Client classes in another generated client class)

Error below:
6> ---> Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: 'System.Text.Json.Serialization.JsonConverter<BaseClass>' does not contain a definition for 'DiscriminatorName'

* updated missing namepace for JsonException

* fix unit tests

Co-authored-by: Mike Mao <Mike.Mao@NZFUNDS.CO.NZ>
  • Loading branch information
zyofeng and zyofeng committed May 15, 2022
1 parent 5a5ceb6 commit a9848a2
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ public async Task When_schema_has_base_schema_then_it_is_referenced_with_Newtons
Assert.True(json.Properties["Item"].ActualTypeSchema.AllOf.First().HasReference);
Assert.Contains("[Newtonsoft.Json.JsonConverter(typeof(JsonInheritanceConverter), \"discriminator\")]", code);
Assert.Contains("[JsonInheritanceAttribute(\"Banana\", typeof(Banana))]", code);
Assert.Contains("internal class JsonInheritanceConverter : Newtonsoft.Json.JsonConverter", code);
Assert.Contains("public class JsonInheritanceConverter : Newtonsoft.Json.JsonConverter", code);
}

[Fact]
Expand All @@ -76,7 +76,7 @@ public async Task When_schema_has_base_schema_then_it_is_referenced_with_STJ()
Assert.True(json.Properties["Item"].ActualTypeSchema.AllOf.First().HasReference);
Assert.Contains("[JsonInheritanceConverter(typeof(Fruit), \"discriminator\")]", code);
Assert.Contains("[JsonInheritanceAttribute(\"Banana\", typeof(Banana))]", code);
Assert.Contains("internal class JsonInheritanceConverter<TBase> : System.Text.Json.Serialization.JsonConverter<TBase>", code);
Assert.Contains("public class JsonInheritanceConverter<TBase> : System.Text.Json.Serialization.JsonConverter<TBase>", code);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ internal class JsonInheritanceConverterAttribute : System.Text.Json.Serializatio
}
}

internal class JsonInheritanceConverter<TBase> : System.Text.Json.Serialization.JsonConverter<TBase>
public class JsonInheritanceConverter<TBase> : System.Text.Json.Serialization.JsonConverter<TBase>
{
private readonly string _discriminatorName;

Expand Down Expand Up @@ -115,7 +115,7 @@ internal class JsonInheritanceConverter<TBase> : System.Text.Json.Serialization.
}
}
{%- else -%}
internal class JsonInheritanceConverter : Newtonsoft.Json.JsonConverter
public class JsonInheritanceConverter : Newtonsoft.Json.JsonConverter
{
internal static readonly string DefaultDiscriminatorName = "discriminator";

Expand Down Expand Up @@ -235,4 +235,4 @@ internal class JsonInheritanceConverter : Newtonsoft.Json.JsonConverter
return objectType.Name;
}
}
{%- endif -%}
{%- endif -%}

0 comments on commit a9848a2

Please sign in to comment.