diff --git a/examples/Elastic.Ephemeral.Example/Elastic.Ephemeral.Example.csproj b/examples/Elastic.Ephemeral.Example/Elastic.Ephemeral.Example.csproj
index c307ffc..b5b8ea6 100644
--- a/examples/Elastic.Ephemeral.Example/Elastic.Ephemeral.Example.csproj
+++ b/examples/Elastic.Ephemeral.Example/Elastic.Ephemeral.Example.csproj
@@ -13,7 +13,7 @@
-
+
diff --git a/src/Elastic.Stack.ArtifactsApi/Resolvers/ApiResolver.cs b/src/Elastic.Stack.ArtifactsApi/Resolvers/ApiResolver.cs
index 7d097df..6c5235f 100644
--- a/src/Elastic.Stack.ArtifactsApi/Resolvers/ApiResolver.cs
+++ b/src/Elastic.Stack.ArtifactsApi/Resolvers/ApiResolver.cs
@@ -74,7 +74,7 @@ public static string LatestBuildHash(string version)
try
{
// if packages is empty it turns into an array[] otherwise its a dictionary :/
- var packages = JsonSerializer.Deserialize(json).Packages;
+ var packages = JsonSerializer.Deserialize(json, ApiResolverSerializerContext.Default.ArtifactsSearchResponse).Packages;
if (packages.Count == 0)
throw new Exception("Can not get build hash for: " + version);
return GetBuildHash(packages.First().Value.DownloadUrl);
@@ -123,4 +123,8 @@ internal class SearchPackage
[JsonPropertyName("os")] public string[] OperatingSystem { get; set; }
[JsonPropertyName("classifier")] public string Classifier { get; set; }
}
+
+ [JsonSerializable(typeof(ArtifactsVersionsResponse))]
+ [JsonSerializable(typeof(ArtifactsSearchResponse))]
+ internal sealed partial class ApiResolverSerializerContext : JsonSerializerContext;
}
diff --git a/src/Elastic.Stack.ArtifactsApi/Resolvers/SnapshotApiResolver.cs b/src/Elastic.Stack.ArtifactsApi/Resolvers/SnapshotApiResolver.cs
index 8b4e418..d441d76 100644
--- a/src/Elastic.Stack.ArtifactsApi/Resolvers/SnapshotApiResolver.cs
+++ b/src/Elastic.Stack.ArtifactsApi/Resolvers/SnapshotApiResolver.cs
@@ -45,7 +45,7 @@ public static bool TryResolve(Product product, Version version, OSPlatform os, s
{
var json = ApiResolver.FetchJson($"search/{version}/{query}");
// if packages is empty it turns into an array[] otherwise its a dictionary :/
- packages = JsonSerializer.Deserialize(json).Packages;
+ packages = JsonSerializer.Deserialize(json, ApiResolverSerializerContext.Default.ArtifactsSearchResponse).Packages;
}
catch
{
@@ -82,7 +82,7 @@ public static bool TryResolve(Product product, Version version, OSPlatform os, s
private static IReadOnlyCollection LoadVersions()
{
var json = ApiResolver.FetchJson("versions");
- var versions = JsonSerializer.Deserialize(json).Versions;
+ var versions = JsonSerializer.Deserialize(json, ApiResolverSerializerContext.Default.ArtifactsVersionsResponse).Versions;
return new List(versions.Select(v => new Version(v)));
}