diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5777bd06..2e48571c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,12 +7,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
+## [1.9.4] - 2024-05-31
+
+### Changed
+
+- Fix MultipartBody serialization
+
## [1.9.3] - 2024-05-28
### Changed
- Fix time formatting for other cultures.
-- Fix MultipartBody serialization
## [1.9.2] - 2024-05-24
diff --git a/src/Microsoft.Kiota.Abstractions.csproj b/src/Microsoft.Kiota.Abstractions.csproj
index d4365c58..6d4a9f69 100644
--- a/src/Microsoft.Kiota.Abstractions.csproj
+++ b/src/Microsoft.Kiota.Abstractions.csproj
@@ -15,7 +15,7 @@
https://aka.ms/kiota/docs
true
true
- 1.9.3
+ 1.9.4
true
false
diff --git a/src/MultipartBody.cs b/src/MultipartBody.cs
index 6ced3fb1..c785cccb 100644
--- a/src/MultipartBody.cs
+++ b/src/MultipartBody.cs
@@ -139,23 +139,13 @@ public void Serialize(ISerializationWriter writer)
{
using var partWriter = RequestAdapter.SerializationWriterFactory.GetSerializationWriter(part.ContentType);
partWriter.WriteObjectValue(string.Empty, parsable);
- using var partContent = partWriter.GetSerializedContent();
- if(partContent.CanSeek)
- partContent.Seek(0, SeekOrigin.Begin);
- using var ms = new MemoryStream();
- partContent.CopyTo(ms);
- writer.WriteByteArrayValue(string.Empty, ms.ToArray());
+ WriteSerializedContent(writer, partWriter);
}
else if(part.Content is string currentString)
{
using var partWriter = RequestAdapter.SerializationWriterFactory.GetSerializationWriter(part.ContentType);
partWriter.WriteStringValue(string.Empty, currentString);
- using var partContent = partWriter.GetSerializedContent();
- if(partContent.CanSeek)
- partContent.Seek(0, SeekOrigin.Begin);
- using var ms = new MemoryStream();
- partContent.CopyTo(ms);
- writer.WriteByteArrayValue(string.Empty, ms.ToArray());
+ WriteSerializedContent(writer, partWriter);
}
else if(part.Content is MemoryStream originalMemoryStream)
{
@@ -191,6 +181,16 @@ private void AddNewLine(ISerializationWriter writer)
writer.WriteStringValue(string.Empty, string.Empty);
}
+ private void WriteSerializedContent(ISerializationWriter writer, ISerializationWriter partWriter)
+ {
+ using var partContent = partWriter.GetSerializedContent();
+ if(partContent.CanSeek)
+ partContent.Seek(0, SeekOrigin.Begin);
+ using var ms = new MemoryStream();
+ partContent.CopyTo(ms);
+ writer.WriteByteArrayValue(string.Empty, ms.ToArray());
+ }
+
private class Part
{
public Part(string name, object content, string contentType, string? fileName)