From 5affd9f061e75f6575a2fe6715f9e8757cfe87e8 Mon Sep 17 00:00:00 2001 From: "Emma [it/its]@Rory&" Date: Thu, 14 Dec 2023 07:20:46 +0100 Subject: Cleanup --- .../Program.cs | 28 +++++++++++++++------- 1 file changed, 19 insertions(+), 9 deletions(-) (limited to 'Utilities/LibMatrix.JsonSerializerContextGenerator/Program.cs') diff --git a/Utilities/LibMatrix.JsonSerializerContextGenerator/Program.cs b/Utilities/LibMatrix.JsonSerializerContextGenerator/Program.cs index 76d6357..0c0277b 100644 --- a/Utilities/LibMatrix.JsonSerializerContextGenerator/Program.cs +++ b/Utilities/LibMatrix.JsonSerializerContextGenerator/Program.cs @@ -1,8 +1,6 @@ -using System.Reflection; -using ArcaneLibs; +using ArcaneLibs; using ArcaneLibs.Extensions.Streams; -using LibMatrix; -using LibMatrix.Interfaces; +using LibMatrix.EventTypes; // string binary = args.Length > 1 ? args[0] : Console.ReadLine()!; @@ -10,13 +8,25 @@ using LibMatrix.Interfaces; File.Delete("EventSerializerContexts.g.cs"); var stream = File.OpenWrite("EventSerializerContexts.g.cs"); var eventContentTypes = new ClassCollector().ResolveFromAllAccessibleAssemblies(); + +stream.WriteString("using System.Text.Json.Serialization;\n"); + +stream.WriteString(string.Join('\n', eventContentTypes.DistinctBy(x => x.Namespace) + .Select(x => $"using {x.Namespace};"))); +stream.WriteString("\n\nnamespace LibMatrix.Generated;\n\n[JsonSourceGenerationOptions(WriteIndented = true)]\n"); + +// stream.WriteString(string.Join('\n', eventContentTypes//.DistinctBy(x => x.Namespace) +// .Select(x => $$""" +// [JsonSourceGenerationOptions(WriteIndented = true)] +// [JsonSerializable(typeof({{x.Name}}))] +// internal partial class {{x.Name}}SerializerContext : JsonSerializerContext { } +// +// """))); + stream.WriteString(string.Join('\n', eventContentTypes//.DistinctBy(x => x.Namespace) - .Select(x => $$""" - [System.Text.Json.Serialization.JsonSourceGenerationOptions(WriteIndented = true)] - [System.Text.Json.Serialization.JsonSerializable(typeof({{x.FullName}}))] - internal partial class {{x.Name}}SerializerContext : System.Text.Json.Serialization.JsonSerializerContext { } + .Select(x => $"[JsonSerializable(typeof({x.Name}))]"))); - """))); +stream.WriteString("\ninternal partial class EventTypeSerializerContext : JsonSerializerContext { }"); await stream.FlushAsync(); stream.Close(); \ No newline at end of file -- cgit 1.4.1