diff --git a/dotnet/src/Microsoft.Agents.AI/ChatClient/ChatClientAgentSession.cs b/dotnet/src/Microsoft.Agents.AI/ChatClient/ChatClientAgentSession.cs
index 400bfbcaf6..102aee83e6 100644
--- a/dotnet/src/Microsoft.Agents.AI/ChatClient/ChatClientAgentSession.cs
+++ b/dotnet/src/Microsoft.Agents.AI/ChatClient/ChatClientAgentSession.cs
@@ -21,8 +21,13 @@ internal ChatClientAgentSession()
{
}
+ ///
+ /// Initializes a new instance of the class with optional conversation and state data.
+ ///
+ /// The underlying service chat history identifier, if available.
+ /// The state bag to initialize the session with.
[JsonConstructor]
- internal ChatClientAgentSession(string? conversationId, AgentSessionStateBag? stateBag) : base(stateBag ?? new())
+ internal ChatClientAgentSession(string? conversationId = null, AgentSessionStateBag? stateBag = null) : base(stateBag ?? new())
{
this.ConversationId = conversationId;
}
diff --git a/dotnet/tests/Microsoft.Agents.AI.UnitTests/ChatClient/ChatClientAgentSessionTests.cs b/dotnet/tests/Microsoft.Agents.AI.UnitTests/ChatClient/ChatClientAgentSessionTests.cs
index 1f5e5aa9cd..20bf40c393 100644
--- a/dotnet/tests/Microsoft.Agents.AI.UnitTests/ChatClient/ChatClientAgentSessionTests.cs
+++ b/dotnet/tests/Microsoft.Agents.AI.UnitTests/ChatClient/ChatClientAgentSessionTests.cs
@@ -3,6 +3,7 @@
using System;
using System.Linq;
using System.Text.Json;
+using System.Text.Json.Serialization;
using Microsoft.Extensions.AI;
#pragma warning disable CA1861 // Avoid constant arrays as arguments
@@ -117,6 +118,27 @@ public void DeserializeWithInvalidJsonThrows()
Assert.Throws(() => ChatClientAgentSession.Deserialize(invalidJson));
}
+ [Fact]
+ public void VerifyDeserializeWithWhenWritingNullOptions()
+ {
+ // Arrange
+ var session = new ChatClientAgentSession();
+ JsonSerializerOptions options = new()
+ {
+ DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull,
+ RespectRequiredConstructorParameters = true,
+ };
+ options.TypeInfoResolverChain.Add(AgentJsonUtilities.DefaultOptions.TypeInfoResolver!);
+
+ // Act
+ var serializedSession = JsonSerializer.SerializeToElement(session, options.GetTypeInfo(typeof(ChatClientAgentSession)));
+ var deserializedSession = ChatClientAgentSession.Deserialize(serializedSession, options);
+
+ // Assert
+ Assert.False(serializedSession.TryGetProperty("conversationId", out _));
+ Assert.Null(deserializedSession.ConversationId);
+ }
+
#endregion Deserialize Tests
#region Serialize Tests