Skip to content

Commit 7484b99

Browse files
committed
Merge pull request #1804 from elastic/feature/1.x-serialization
Align serialization with NEST 2.0 implementation
2 parents 6a1bcec + 93957da commit 7484b99

File tree

1 file changed

+17
-7
lines changed

1 file changed

+17
-7
lines changed

src/Elasticsearch.Net/Connection/RequestHandlers/RequestHandlerBase.cs

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -56,17 +56,27 @@ protected byte[] PostData(object data)
5656
var s = data as string;
5757
if (s != null) return s.Utf8Bytes();
5858

59-
var ss = data as IEnumerable<string>;
60-
if (ss != null) return (string.Join("\n", ss) + "\n").Utf8Bytes();
59+
var dataType = data.GetType();
60+
61+
if (typeof(IEnumerable<string>).IsAssignableFrom(dataType))
62+
{
63+
var ss = (IEnumerable<string>)data;
64+
return (string.Join("\n", ss) + "\n").Utf8Bytes();
65+
}
66+
67+
if (typeof(IEnumerable<object>).IsAssignableFrom(dataType))
68+
{
69+
var so = (IEnumerable<object>)data;
70+
var joined = string.Join("\n", so
71+
.Select(soo => this._serializer.Serialize(soo, SerializationFormatting.None).Utf8String())) + "\n";
72+
return joined.Utf8Bytes();
73+
}
6174

62-
var so = data as IEnumerable<object>;
6375
var indent = this._settings.UsesPrettyRequests
6476
? SerializationFormatting.Indented
6577
: SerializationFormatting.None;
66-
if (so == null) return this._serializer.Serialize(data, indent);
67-
var joined = string.Join("\n", so
68-
.Select(soo => this._serializer.Serialize(soo, SerializationFormatting.None).Utf8String())) + "\n";
69-
return joined.Utf8Bytes();
78+
79+
return this._serializer.Serialize(data, indent);
7080
}
7181

7282
protected static bool IsValidResponse(ITransportRequestState requestState, IElasticsearchResponse streamResponse)

0 commit comments

Comments
 (0)