neuecc / Utf8Json

Definitely Fastest and Zero Allocation JSON Serializer for C#(NET, .NET Core, Unity, Xamarin).
MIT License
2.35k stars 266 forks source link

Using w/ Swashbuckle's ISerializerDataContractResolver #234

Open Sliverb opened 3 years ago

Sliverb commented 3 years ago

Hi all, I swapped out System.Text.Json for this project with the code below

options.OutputFormatters.RemoveType<SystemTextJsonOutputFormatter>();
options.OutputFormatters.Add(new JsonOutputFormatter(ApiJsonSerializer.DefaultResolver));

options.InputFormatters.RemoveType<SystemTextJsonInputFormatter>();
options.InputFormatters.Add(new JsonInputFormatter(ApiJsonSerializer.DefaultResolver));

I just brought in swashbuckle and it seems to be unable to resolve request models and response types. My guess is due to switching out the input formatters. When i switch back to the default formatters, everything works as designed.

From looking at the swashbuckle code that allows folks to switch back to Newtonsoft, it looks like we need to create a class that implements ISerializerDataContractResolver and return it as swashbuckle's resolver. I am not sure where to start on this and am hoping someone in the community has either done this before or knows how to.

Any help will be appreciated.

Thanks

jacobboland commented 3 years ago

@Sliverb I'm not sure if you got this working, but the closest answer I have seen to this is here. https://github.com/domaindrivendev/Swashbuckle.AspNetCore/issues/2027. It would be nice if this could be a part of the Utf8Json formatters.