Fix up converters to target all assemblies in the AppDomain (#364)

* Fix up converters to target all assemblies in the AppDomain

* Make test more robust

* Make test more robust v2 electric boogaloo
This commit is contained in:
Jesse
2025-06-06 08:23:26 +02:00
committed by GitHub
parent 71ad18b9da
commit 3d288f3489
2 changed files with 9 additions and 8 deletions
@@ -23,10 +23,12 @@ public class SptJsonConverterRegistrator : IJsonConverterRegistrator
private static List<JsonConverter> GetGenericJsonConverters()
{
var enums = Assembly.GetExecutingAssembly().GetTypes()
var enums = AppDomain.CurrentDomain.GetAssemblies()
.SelectMany(assembly => assembly.GetTypes())
.Where(type => type.IsEnum && type.GetCustomAttribute<EftEnumConverterAttribute>() != null);
var listEnums = Assembly.GetExecutingAssembly().GetTypes()
var listEnums = AppDomain.CurrentDomain.GetAssemblies()
.SelectMany(assembly => assembly.GetTypes())
.Where(type => type.IsEnum && type.GetCustomAttribute<EftListEnumConverterAttribute>() != null);
var result = enums.Select(e => (JsonConverter) Activator.CreateInstance(typeof(EftEnumConverter<>).MakeGenericType(e))!).ToList();
+5 -6
View File
@@ -11,18 +11,17 @@ public class Test
private Templates? _templates;
[TestInitialize]
public void Setup()
public async Task Setup()
{
var importer = new ImporterUtil(new MockLogger<ImporterUtil>(), new FileUtil(), new JsonUtil([ new SptJsonConverterRegistrator() ]));
var loadTask = importer.LoadRecursiveAsync<Templates>("./TestAssets/");
loadTask.Wait();
_templates = loadTask.Result;
var importer = new ImporterUtil(new MockLogger<ImporterUtil>(), new FileUtil(), DI.GetService<JsonUtil>());
_templates = await importer.LoadRecursiveAsync<Templates>("./TestAssets/");
}
[TestMethod]
public void TestMethod1()
{
var result = new JsonUtil([ new SptJsonConverterRegistrator() ]).Serialize(_templates);
var result = DI.GetService<JsonUtil>().Serialize(_templates);
Console.WriteLine(result);
}
}