diff --git a/examples/patch-aot/Program.cs b/examples/patch-aot/Program.cs
new file mode 100644
index 000000000..06a693dde
--- /dev/null
+++ b/examples/patch-aot/Program.cs
@@ -0,0 +1,32 @@
+using k8s;
+using k8s.Models;
+
+var config = KubernetesClientConfiguration.BuildConfigFromConfigFile();
+IKubernetes client = new Kubernetes(config);
+Console.WriteLine("Starting Request!");
+
+var pod = client.CoreV1.ListNamespacedPod("default").Items.First();
+var name = pod.Metadata.Name;
+PrintLabels(pod);
+
+var patchStr = @"
+{
+ ""metadata"": {
+ ""labels"": {
+ ""test"": ""test""
+ }
+ }
+}";
+
+client.CoreV1.PatchNamespacedPod(new V1Patch(patchStr, V1Patch.PatchType.MergePatch), name, "default");
+PrintLabels(client.CoreV1.ReadNamespacedPod(name, "default"));
+
+static void PrintLabels(V1Pod pod)
+{
+ Console.WriteLine($"Labels: for {pod.Metadata.Name}");
+ foreach (var (k, v) in pod.Metadata.Labels)
+ {
+ Console.WriteLine($"{k} : {v}");
+ }
+ Console.WriteLine("=-=-=-=-=-=-=-=-=-=-=");
+}
diff --git a/examples/patch-aot/patch-aot.csproj b/examples/patch-aot/patch-aot.csproj
new file mode 100644
index 000000000..c2c806215
--- /dev/null
+++ b/examples/patch-aot/patch-aot.csproj
@@ -0,0 +1,11 @@
+
+
+ Exe
+ enable
+ enable
+ true
+
+
+
+
+
diff --git a/src/KubernetesClient.Aot/KubernetesJson.cs b/src/KubernetesClient.Aot/KubernetesJson.cs
index cfa69ec01..f6285ccc2 100644
--- a/src/KubernetesClient.Aot/KubernetesJson.cs
+++ b/src/KubernetesClient.Aot/KubernetesJson.cs
@@ -91,6 +91,11 @@ public static TValue Deserialize(Stream json, JsonSerializerOptions json
public static string Serialize(object value, JsonSerializerOptions jsonSerializerOptions = null)
{
+ if (value is V1Patch { Content: string jsonValue })
+ {
+ return jsonValue;
+ }
+
var info = SourceGenerationContext.Default.GetTypeInfo(value.GetType());
return JsonSerializer.Serialize(value, info);
}