@@ -129,6 +129,8 @@ public ConnectionConfiguration(IConnectionPool connectionPool, IConnection conne
129129 public abstract class ConnectionConfiguration < T > : IConnectionConfigurationValues , IHideObjectMembers
130130 where T : ConnectionConfiguration < T >
131131 {
132+ public static IMemoryStreamFactory DefaultMemoryStreamFactory { get ; } = Elasticsearch . Net . MemoryStreamFactory . Default ;
133+
132134 private readonly IConnection _connection ;
133135 private readonly IConnectionPool _connectionPool ;
134136 private readonly NameValueCollection _headers = new NameValueCollection ( ) ;
@@ -141,9 +143,7 @@ public abstract class ConnectionConfiguration<T> : IConnectionConfigurationValue
141143 private Action < IApiCallDetails > _completedRequestHandler = DefaultCompletedRequestHandler ;
142144 private int _connectionLimit ;
143145 private TimeSpan ? _deadTimeout ;
144-
145146 private bool _disableAutomaticProxyDetection = false ;
146-
147147 private bool _disableDirectStreaming = false ;
148148 private bool _disableMetaHeader ;
149149 private bool _disablePings ;
@@ -154,12 +154,12 @@ public abstract class ConnectionConfiguration<T> : IConnectionConfigurationValue
154154 private TimeSpan ? _maxDeadTimeout ;
155155 private int ? _maxRetries ;
156156 private TimeSpan ? _maxRetryTimeout ;
157+ private IMemoryStreamFactory _memoryStreamFactory = DefaultMemoryStreamFactory ;
157158 private Func < Node , bool > _nodePredicate = DefaultNodePredicate ;
158159 private Action < RequestData > _onRequestDataCreated = DefaultRequestDataCreated ;
159160 private TimeSpan ? _pingTimeout ;
160161 private bool _prettyJson ;
161162 private string _proxyAddress ;
162-
163163 private string _proxyPassword ;
164164 private string _proxyUsername ;
165165 private TimeSpan _requestTimeout ;
@@ -217,8 +217,7 @@ protected ConnectionConfiguration(IConnectionPool connectionPool, IConnection co
217217 TimeSpan ? IConnectionConfigurationValues . MaxDeadTimeout => _maxDeadTimeout ;
218218 int ? IConnectionConfigurationValues . MaxRetries => _maxRetries ;
219219 TimeSpan ? IConnectionConfigurationValues . MaxRetryTimeout => _maxRetryTimeout ;
220- IMemoryStreamFactory IConnectionConfigurationValues . MemoryStreamFactory { get ; } = new RecyclableMemoryStreamFactory ( ) ;
221-
220+ IMemoryStreamFactory IConnectionConfigurationValues . MemoryStreamFactory => _memoryStreamFactory ;
222221 Func < Node , bool > IConnectionConfigurationValues . NodePredicate => _nodePredicate ;
223222 Action < IApiCallDetails > IConnectionConfigurationValues . OnRequestCompleted => _completedRequestHandler ;
224223 Action < RequestData > IConnectionConfigurationValues . OnRequestDataCreated => _onRequestDataCreated ;
@@ -585,6 +584,11 @@ public T SkipDeserializationForStatusCodes(params int[] statusCodes) =>
585584 /// </summary>
586585 public T UserAgent ( string userAgent ) => Assign ( userAgent , ( a , v ) => a . _userAgent = v ) ;
587586
587+ /// <summary>
588+ /// The memory stream factory to use, defaults to <see cref="MemoryStreamFactory.Default"/>.
589+ /// </summary>
590+ public T MemoryStreamFactory ( IMemoryStreamFactory memoryStreamFactory ) => Assign ( memoryStreamFactory , ( a , v ) => a . _memoryStreamFactory = v ) ;
591+
588592 protected virtual void DisposeManagedResources ( )
589593 {
590594 _connectionPool ? . Dispose ( ) ;
0 commit comments