You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by pt...@apache.org on 2023/10/05 05:33:03 UTC

[ignite-3] branch main updated: IGNITE-20523 .NET: Restore generic IgniteArgumentCheck.NotNull (#2661)

This is an automated email from the ASF dual-hosted git repository.

ptupitsyn pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


The following commit(s) were added to refs/heads/main by this push:
     new b616478f97 IGNITE-20523 .NET: Restore generic IgniteArgumentCheck.NotNull (#2661)
b616478f97 is described below

commit b616478f97b1973d8f75c88ae55cbb811cadf653
Author: Pavel Tupitsyn <pt...@apache.org>
AuthorDate: Thu Oct 5 08:32:57 2023 +0300

    IGNITE-20523 .NET: Restore generic IgniteArgumentCheck.NotNull (#2661)
    
    IGNITE-20479 (#2636) replaced custom null checks with standard `ArgumentNullException.ThrowIfNull`. However, `ThrowIfNull` takes *object*, which involves boxing for value types, resulting in heap allocations.
    
    Bring back generic `NotNull` check which does not allocate.
---
 .../platforms/dotnet/Apache.Ignite/IgniteClient.cs |  4 +-
 .../Apache.Ignite/IgniteClientConfiguration.cs     |  5 ++-
 .../dotnet/Apache.Ignite/IgniteException.cs        |  3 +-
 .../Internal/Common/IgniteArgumentCheck.cs         | 29 ++++++++++++-
 .../Internal/Common/IgniteToStringBuilder.cs       |  4 +-
 .../Apache.Ignite/Internal/Compute/Compute.cs      | 18 ++++-----
 .../dotnet/Apache.Ignite/Internal/Sql/ResultSet.cs |  8 ++--
 .../dotnet/Apache.Ignite/Internal/Sql/Sql.cs       |  2 +-
 .../Apache.Ignite/Internal/Table/DataStreamer.cs   |  2 +-
 .../Apache.Ignite/Internal/Table/KeyValueView.cs   | 14 +++----
 .../Apache.Ignite/Internal/Table/RecordView.cs     | 30 +++++++-------
 .../dotnet/Apache.Ignite/Internal/Table/Tables.cs  |  3 +-
 .../dotnet/Apache.Ignite/Log/CategoryLogger.cs     |  2 +-
 .../dotnet/Apache.Ignite/Log/LoggerExtensions.cs   | 13 +++---
 .../dotnet/Apache.Ignite/RetryLimitPolicy.cs       |  3 +-
 .../dotnet/Apache.Ignite/RetryReadPolicy.cs        |  3 +-
 .../dotnet/Apache.Ignite/Sql/IgniteDbDataReader.cs |  2 +-
 .../Sql/IgniteQueryableExtensions.Average.cs       | 41 ++++++++++---------
 .../Sql/IgniteQueryableExtensions.Dml.cs           |  9 +++--
 .../Sql/IgniteQueryableExtensions.Sum.cs           | 41 ++++++++++---------
 .../Apache.Ignite/Sql/IgniteQueryableExtensions.cs | 47 +++++++++++-----------
 .../dotnet/Apache.Ignite/Sql/SqlStatement.cs       |  2 +-
 .../dotnet/Apache.Ignite/SslStreamFactory.cs       |  3 +-
 .../dotnet/Apache.Ignite/Table/IIgniteTuple.cs     |  4 +-
 24 files changed, 162 insertions(+), 130 deletions(-)

diff --git a/modules/platforms/dotnet/Apache.Ignite/IgniteClient.cs b/modules/platforms/dotnet/Apache.Ignite/IgniteClient.cs
index e51ac0c8ca..9dbce437ef 100644
--- a/modules/platforms/dotnet/Apache.Ignite/IgniteClient.cs
+++ b/modules/platforms/dotnet/Apache.Ignite/IgniteClient.cs
@@ -17,9 +17,9 @@
 
 namespace Apache.Ignite
 {
-    using System;
     using System.Threading.Tasks;
     using Internal;
+    using Internal.Common;
 
     /// <summary>
     /// Ignite client builder.
@@ -33,7 +33,7 @@ namespace Apache.Ignite
         /// <returns>Started client.</returns>
         public static async Task<IIgniteClient> StartAsync(IgniteClientConfiguration configuration)
         {
-            ArgumentNullException.ThrowIfNull(configuration);
+            IgniteArgumentCheck.NotNull(configuration);
 
             var socket = await ClientFailoverSocket.ConnectAsync(configuration).ConfigureAwait(false);
 
diff --git a/modules/platforms/dotnet/Apache.Ignite/IgniteClientConfiguration.cs b/modules/platforms/dotnet/Apache.Ignite/IgniteClientConfiguration.cs
index c380fe9730..93f9c0853a 100644
--- a/modules/platforms/dotnet/Apache.Ignite/IgniteClientConfiguration.cs
+++ b/modules/platforms/dotnet/Apache.Ignite/IgniteClientConfiguration.cs
@@ -21,6 +21,7 @@ namespace Apache.Ignite
     using System.Collections.Generic;
     using System.ComponentModel;
     using System.Linq;
+    using Internal.Common;
     using Log;
 
     /// <summary>
@@ -63,7 +64,7 @@ namespace Apache.Ignite
         public IgniteClientConfiguration(params string[] endpoints)
             : this()
         {
-            ArgumentNullException.ThrowIfNull(endpoints);
+            IgniteArgumentCheck.NotNull(endpoints);
 
             foreach (var endpoint in endpoints)
             {
@@ -77,7 +78,7 @@ namespace Apache.Ignite
         /// <param name="other">Other configuration.</param>
         public IgniteClientConfiguration(IgniteClientConfiguration other)
         {
-            ArgumentNullException.ThrowIfNull(other);
+            IgniteArgumentCheck.NotNull(other);
 
             Logger = other.Logger;
             SocketTimeout = other.SocketTimeout;
diff --git a/modules/platforms/dotnet/Apache.Ignite/IgniteException.cs b/modules/platforms/dotnet/Apache.Ignite/IgniteException.cs
index 02fb8b2be7..d7e806acea 100644
--- a/modules/platforms/dotnet/Apache.Ignite/IgniteException.cs
+++ b/modules/platforms/dotnet/Apache.Ignite/IgniteException.cs
@@ -20,6 +20,7 @@ namespace Apache.Ignite
     using System;
     using System.Diagnostics.CodeAnalysis;
     using System.Runtime.Serialization;
+    using Internal.Common;
 
     /// <summary>
     /// Ignite exception.
@@ -53,7 +54,7 @@ namespace Apache.Ignite
         protected IgniteException(SerializationInfo serializationInfo, StreamingContext streamingContext)
             : base(serializationInfo, streamingContext)
         {
-            ArgumentNullException.ThrowIfNull(serializationInfo);
+            IgniteArgumentCheck.NotNull(serializationInfo);
 
             TraceId = (Guid)serializationInfo.GetValue(nameof(TraceId), typeof(Guid))!;
             Code = serializationInfo.GetInt32(nameof(Code));
diff --git a/modules/platforms/dotnet/Apache.Ignite/Internal/Common/IgniteArgumentCheck.cs b/modules/platforms/dotnet/Apache.Ignite/Internal/Common/IgniteArgumentCheck.cs
index 3e5f47bc15..d25c892d3c 100644
--- a/modules/platforms/dotnet/Apache.Ignite/Internal/Common/IgniteArgumentCheck.cs
+++ b/modules/platforms/dotnet/Apache.Ignite/Internal/Common/IgniteArgumentCheck.cs
@@ -21,12 +21,36 @@ namespace Apache.Ignite.Internal.Common
     using System;
     using System.Diagnostics.CodeAnalysis;
     using System.Runtime.CompilerServices;
+    using JetBrains.Annotations;
 
     /// <summary>
     /// Arguments check helpers.
     /// </summary>
     internal static class IgniteArgumentCheck
     {
+        /// <summary>
+        /// Throws an ArgumentNullException if specified arg is null.
+        /// <para />
+        /// Unlike <see cref="ArgumentNullException.ThrowIfNull"/>, this is a generic method and does not cause boxing allocations.
+        /// </summary>
+        /// <param name="arg">The argument.</param>
+        /// <param name="argName">Name of the argument.</param>
+        /// <typeparam name="T">Arg type.</typeparam>
+        public static void NotNull<T>(
+            [NoEnumeration, System.Diagnostics.CodeAnalysis.NotNull] T arg,
+            [CallerArgumentExpression("arg")] string? argName = null)
+        {
+            if (arg == null)
+            {
+                Throw();
+            }
+
+            // Separate method to allow inlining of the parent method.
+            // Parent is called always to check arguments, so inlining it will improve perf.
+            [DoesNotReturn]
+            void Throw() => throw new ArgumentNullException(argName);
+        }
+
         /// <summary>
         /// Throws an ArgumentException if specified arg is null or empty string.
         /// </summary>
@@ -54,8 +78,11 @@ namespace Apache.Ignite.Internal.Common
         {
             if (!condition)
             {
-                throw new ArgumentException($"'{argName}' argument is invalid: {message}", argName);
+                Throw();
             }
+
+            [DoesNotReturn]
+            void Throw() => throw new ArgumentException($"'{argName}' argument is invalid: {message}", argName);
         }
 
         [DoesNotReturn]
diff --git a/modules/platforms/dotnet/Apache.Ignite/Internal/Common/IgniteToStringBuilder.cs b/modules/platforms/dotnet/Apache.Ignite/Internal/Common/IgniteToStringBuilder.cs
index 3c09849ef9..0f78f72c32 100644
--- a/modules/platforms/dotnet/Apache.Ignite/Internal/Common/IgniteToStringBuilder.cs
+++ b/modules/platforms/dotnet/Apache.Ignite/Internal/Common/IgniteToStringBuilder.cs
@@ -67,7 +67,7 @@ internal record IgniteToStringBuilder
     /// <returns>This instance.</returns>
     public IgniteToStringBuilder Append(object? value, [CallerArgumentExpression("value")] string? name = null)
     {
-        ArgumentNullException.ThrowIfNull(name);
+        IgniteArgumentCheck.NotNull(name);
 
         CheckClosed();
         AppendComma();
@@ -88,7 +88,7 @@ internal record IgniteToStringBuilder
     /// <returns>This instance.</returns>
     public IgniteToStringBuilder AppendList<T>(IEnumerable<T> value, [CallerArgumentExpression("value")] string? name = null)
     {
-        ArgumentNullException.ThrowIfNull(name);
+        IgniteArgumentCheck.NotNull(name);
 
         CheckClosed();
         AppendComma();
diff --git a/modules/platforms/dotnet/Apache.Ignite/Internal/Compute/Compute.cs b/modules/platforms/dotnet/Apache.Ignite/Internal/Compute/Compute.cs
index 283abbbba6..2f03287c94 100644
--- a/modules/platforms/dotnet/Apache.Ignite/Internal/Compute/Compute.cs
+++ b/modules/platforms/dotnet/Apache.Ignite/Internal/Compute/Compute.cs
@@ -66,8 +66,8 @@ namespace Apache.Ignite.Internal.Compute
             string jobClassName,
             params object?[]? args)
         {
-            ArgumentNullException.ThrowIfNull(nodes);
-            ArgumentNullException.ThrowIfNull(jobClassName);
+            IgniteArgumentCheck.NotNull(nodes);
+            IgniteArgumentCheck.NotNull(jobClassName);
 
             return await ExecuteOnOneNode<T>(GetRandomNode(nodes), units, jobClassName, args).ConfigureAwait(false);
         }
@@ -112,9 +112,9 @@ namespace Apache.Ignite.Internal.Compute
             string jobClassName,
             params object?[]? args)
         {
-            ArgumentNullException.ThrowIfNull(nodes);
-            ArgumentNullException.ThrowIfNull(jobClassName);
-            ArgumentNullException.ThrowIfNull(units);
+            IgniteArgumentCheck.NotNull(nodes);
+            IgniteArgumentCheck.NotNull(jobClassName);
+            IgniteArgumentCheck.NotNull(units);
 
             var res = new Dictionary<IClusterNode, Task<T>>();
             var units0 = units as ICollection<DeploymentUnit> ?? units.ToList(); // Avoid multiple enumeration.
@@ -188,7 +188,7 @@ namespace Apache.Ignite.Internal.Compute
             string jobClassName,
             object?[]? args)
         {
-            ArgumentNullException.ThrowIfNull(node);
+            IgniteArgumentCheck.NotNull(node);
 
             using var writer = ProtoCommon.GetMessageWriter();
             Write();
@@ -246,9 +246,9 @@ namespace Apache.Ignite.Internal.Compute
             params object?[]? args)
             where TKey : notnull
         {
-            ArgumentNullException.ThrowIfNull(tableName);
-            ArgumentNullException.ThrowIfNull(key);
-            ArgumentNullException.ThrowIfNull(jobClassName);
+            IgniteArgumentCheck.NotNull(tableName);
+            IgniteArgumentCheck.NotNull(key);
+            IgniteArgumentCheck.NotNull(jobClassName);
 
             var units0 = units as ICollection<DeploymentUnit> ?? units.ToList(); // Avoid multiple enumeration.
             int? schemaVersion = null;
diff --git a/modules/platforms/dotnet/Apache.Ignite/Internal/Sql/ResultSet.cs b/modules/platforms/dotnet/Apache.Ignite/Internal/Sql/ResultSet.cs
index 2beea6a89f..887fff64d2 100644
--- a/modules/platforms/dotnet/Apache.Ignite/Internal/Sql/ResultSet.cs
+++ b/modules/platforms/dotnet/Apache.Ignite/Internal/Sql/ResultSet.cs
@@ -132,8 +132,8 @@ namespace Apache.Ignite.Internal.Sql
             IEqualityComparer<TK>? comparer)
             where TK : notnull
         {
-            ArgumentNullException.ThrowIfNull(keySelector);
-            ArgumentNullException.ThrowIfNull(valSelector);
+            IgniteArgumentCheck.NotNull(keySelector);
+            IgniteArgumentCheck.NotNull(valSelector);
 
             return await CollectAsync(
                     constructor: capacity => new Dictionary<TK, TV>(capacity, comparer),
@@ -144,8 +144,8 @@ namespace Apache.Ignite.Internal.Sql
         /// <inheritdoc/>
         public async ValueTask<TResult> CollectAsync<TResult>(Func<int, TResult> constructor, Action<TResult, T> accumulator)
         {
-            ArgumentNullException.ThrowIfNull(constructor);
-            ArgumentNullException.ThrowIfNull(accumulator);
+            IgniteArgumentCheck.NotNull(constructor);
+            IgniteArgumentCheck.NotNull(accumulator);
 
             ValidateAndSetIteratorState();
 
diff --git a/modules/platforms/dotnet/Apache.Ignite/Internal/Sql/Sql.cs b/modules/platforms/dotnet/Apache.Ignite/Internal/Sql/Sql.cs
index 185fbf3b0b..ddc3735734 100644
--- a/modules/platforms/dotnet/Apache.Ignite/Internal/Sql/Sql.cs
+++ b/modules/platforms/dotnet/Apache.Ignite/Internal/Sql/Sql.cs
@@ -131,7 +131,7 @@ namespace Apache.Ignite.Internal.Sql
             RowReaderFactory<T> rowReaderFactory,
             ICollection<object?>? args)
         {
-            ArgumentNullException.ThrowIfNull(statement);
+            IgniteArgumentCheck.NotNull(statement);
 
             var tx = transaction.ToInternal();
 
diff --git a/modules/platforms/dotnet/Apache.Ignite/Internal/Table/DataStreamer.cs b/modules/platforms/dotnet/Apache.Ignite/Internal/Table/DataStreamer.cs
index edc3207492..8c957a2542 100644
--- a/modules/platforms/dotnet/Apache.Ignite/Internal/Table/DataStreamer.cs
+++ b/modules/platforms/dotnet/Apache.Ignite/Internal/Table/DataStreamer.cs
@@ -71,7 +71,7 @@ internal static class DataStreamer
         DataStreamerOptions options,
         CancellationToken cancellationToken)
     {
-        ArgumentNullException.ThrowIfNull(data);
+        IgniteArgumentCheck.NotNull(data);
 
         IgniteArgumentCheck.Ensure(
             options.BatchSize > 0,
diff --git a/modules/platforms/dotnet/Apache.Ignite/Internal/Table/KeyValueView.cs b/modules/platforms/dotnet/Apache.Ignite/Internal/Table/KeyValueView.cs
index 1e8262b142..fcbc4fac77 100644
--- a/modules/platforms/dotnet/Apache.Ignite/Internal/Table/KeyValueView.cs
+++ b/modules/platforms/dotnet/Apache.Ignite/Internal/Table/KeyValueView.cs
@@ -103,7 +103,7 @@ internal sealed class KeyValueView<TK, TV> : IKeyValueView<TK, TV>
     /// <inheritdoc/>
     public async Task<IList<TK>> RemoveAllAsync(ITransaction? transaction, IEnumerable<TK> keys)
     {
-        ArgumentNullException.ThrowIfNull(keys);
+        IgniteArgumentCheck.NotNull(keys);
 
         return await _recordView.DeleteAllAsync(
             transaction,
@@ -118,7 +118,7 @@ internal sealed class KeyValueView<TK, TV> : IKeyValueView<TK, TV>
     /// <inheritdoc/>
     public async Task<IList<TK>> RemoveAllAsync(ITransaction? transaction, IEnumerable<KeyValuePair<TK, TV>> pairs)
     {
-        ArgumentNullException.ThrowIfNull(pairs);
+        IgniteArgumentCheck.NotNull(pairs);
 
         return await _recordView.DeleteAllAsync(
             transaction,
@@ -172,23 +172,23 @@ internal sealed class KeyValueView<TK, TV> : IKeyValueView<TK, TV>
 
     private static KvPair<TK, TV> ToKv(KeyValuePair<TK, TV> x)
     {
-        ArgumentNullException.ThrowIfNull(x);
-        ArgumentNullException.ThrowIfNull(x);
+        IgniteArgumentCheck.NotNull(x.Key);
+        IgniteArgumentCheck.NotNull(x.Value);
 
         return new(x.Key, x.Value);
     }
 
     private static KvPair<TK, TV> ToKv(TK key)
     {
-        ArgumentNullException.ThrowIfNull(key);
+        IgniteArgumentCheck.NotNull(key);
 
         return new(key);
     }
 
     private static KvPair<TK, TV> ToKv(TK key, TV val)
     {
-        ArgumentNullException.ThrowIfNull(key);
-        ArgumentNullException.ThrowIfNull(val);
+        IgniteArgumentCheck.NotNull(key);
+        IgniteArgumentCheck.NotNull(val);
 
         return new(key, val);
     }
diff --git a/modules/platforms/dotnet/Apache.Ignite/Internal/Table/RecordView.cs b/modules/platforms/dotnet/Apache.Ignite/Internal/Table/RecordView.cs
index a9265cdbc9..f8222b7cd7 100644
--- a/modules/platforms/dotnet/Apache.Ignite/Internal/Table/RecordView.cs
+++ b/modules/platforms/dotnet/Apache.Ignite/Internal/Table/RecordView.cs
@@ -102,7 +102,7 @@ namespace Apache.Ignite.Internal.Table
         /// <inheritdoc/>
         public async Task<Option<T>> GetAsync(ITransaction? transaction, T key)
         {
-            ArgumentNullException.ThrowIfNull(key);
+            IgniteArgumentCheck.NotNull(key);
 
             using var resBuf = await DoRecordOutOpAsync(ClientOp.TupleGet, transaction, key, keyOnly: true).ConfigureAwait(false);
             var resSchema = await _table.ReadSchemaAsync(resBuf).ConfigureAwait(false);
@@ -113,7 +113,7 @@ namespace Apache.Ignite.Internal.Table
         /// <inheritdoc/>
         public async Task<bool> ContainsKeyAsync(ITransaction? transaction, T key)
         {
-            ArgumentNullException.ThrowIfNull(key);
+            IgniteArgumentCheck.NotNull(key);
 
             using var resBuf = await DoRecordOutOpAsync(ClientOp.TupleContainsKey, transaction, key, keyOnly: true).ConfigureAwait(false);
             return ReadSchemaAndBoolean(resBuf);
@@ -150,7 +150,7 @@ namespace Apache.Ignite.Internal.Table
             Func<int, TRes> resultFactory,
             Action<TRes, Option<T>> addAction)
         {
-            ArgumentNullException.ThrowIfNull(keys);
+            IgniteArgumentCheck.NotNull(keys);
 
             using var resBuf = await DoMultiRecordOutOpAsync(ClientOp.TupleGetAll, transaction, keys, true).ConfigureAwait(false);
             if (resBuf == null)
@@ -167,7 +167,7 @@ namespace Apache.Ignite.Internal.Table
         /// <inheritdoc/>
         public async Task UpsertAsync(ITransaction? transaction, T record)
         {
-            ArgumentNullException.ThrowIfNull(record);
+            IgniteArgumentCheck.NotNull(record);
 
             using var resBuf = await DoRecordOutOpAsync(ClientOp.TupleUpsert, transaction, record).ConfigureAwait(false);
         }
@@ -175,7 +175,7 @@ namespace Apache.Ignite.Internal.Table
         /// <inheritdoc/>
         public async Task UpsertAllAsync(ITransaction? transaction, IEnumerable<T> records)
         {
-            ArgumentNullException.ThrowIfNull(records);
+            IgniteArgumentCheck.NotNull(records);
 
             using var resBuf = await DoMultiRecordOutOpAsync(ClientOp.TupleUpsertAll, transaction, records).ConfigureAwait(false);
         }
@@ -183,7 +183,7 @@ namespace Apache.Ignite.Internal.Table
         /// <inheritdoc/>
         public async Task<Option<T>> GetAndUpsertAsync(ITransaction? transaction, T record)
         {
-            ArgumentNullException.ThrowIfNull(record);
+            IgniteArgumentCheck.NotNull(record);
 
             using var resBuf = await DoRecordOutOpAsync(ClientOp.TupleGetAndUpsert, transaction, record).ConfigureAwait(false);
             var resSchema = await _table.ReadSchemaAsync(resBuf).ConfigureAwait(false);
@@ -194,7 +194,7 @@ namespace Apache.Ignite.Internal.Table
         /// <inheritdoc/>
         public async Task<bool> InsertAsync(ITransaction? transaction, T record)
         {
-            ArgumentNullException.ThrowIfNull(record);
+            IgniteArgumentCheck.NotNull(record);
 
             using var resBuf = await DoRecordOutOpAsync(ClientOp.TupleInsert, transaction, record).ConfigureAwait(false);
             return ReadSchemaAndBoolean(resBuf);
@@ -203,7 +203,7 @@ namespace Apache.Ignite.Internal.Table
         /// <inheritdoc/>
         public async Task<IList<T>> InsertAllAsync(ITransaction? transaction, IEnumerable<T> records)
         {
-            ArgumentNullException.ThrowIfNull(records);
+            IgniteArgumentCheck.NotNull(records);
 
             using var resBuf = await DoMultiRecordOutOpAsync(ClientOp.TupleInsertAll, transaction, records).ConfigureAwait(false);
             if (resBuf == null)
@@ -227,7 +227,7 @@ namespace Apache.Ignite.Internal.Table
         /// <inheritdoc/>
         public async Task<bool> ReplaceAsync(ITransaction? transaction, T record)
         {
-            ArgumentNullException.ThrowIfNull(record);
+            IgniteArgumentCheck.NotNull(record);
 
             using var resBuf = await DoRecordOutOpAsync(ClientOp.TupleReplace, transaction, record).ConfigureAwait(false);
             return ReadSchemaAndBoolean(resBuf);
@@ -236,7 +236,7 @@ namespace Apache.Ignite.Internal.Table
         /// <inheritdoc/>
         public async Task<bool> ReplaceAsync(ITransaction? transaction, T record, T newRecord)
         {
-            ArgumentNullException.ThrowIfNull(record);
+            IgniteArgumentCheck.NotNull(record);
 
             using var resBuf = await DoTwoRecordOutOpAsync(ClientOp.TupleReplaceExact, transaction, record, newRecord)
                 .ConfigureAwait(false);
@@ -247,7 +247,7 @@ namespace Apache.Ignite.Internal.Table
         /// <inheritdoc/>
         public async Task<Option<T>> GetAndReplaceAsync(ITransaction? transaction, T record)
         {
-            ArgumentNullException.ThrowIfNull(record);
+            IgniteArgumentCheck.NotNull(record);
 
             using var resBuf = await DoRecordOutOpAsync(ClientOp.TupleGetAndReplace, transaction, record).ConfigureAwait(false);
             var resSchema = await _table.ReadSchemaAsync(resBuf).ConfigureAwait(false);
@@ -258,7 +258,7 @@ namespace Apache.Ignite.Internal.Table
         /// <inheritdoc/>
         public async Task<bool> DeleteAsync(ITransaction? transaction, T key)
         {
-            ArgumentNullException.ThrowIfNull(key);
+            IgniteArgumentCheck.NotNull(key);
 
             using var resBuf = await DoRecordOutOpAsync(ClientOp.TupleDelete, transaction, key, keyOnly: true).ConfigureAwait(false);
             return ReadSchemaAndBoolean(resBuf);
@@ -267,7 +267,7 @@ namespace Apache.Ignite.Internal.Table
         /// <inheritdoc/>
         public async Task<bool> DeleteExactAsync(ITransaction? transaction, T record)
         {
-            ArgumentNullException.ThrowIfNull(record);
+            IgniteArgumentCheck.NotNull(record);
 
             using var resBuf = await DoRecordOutOpAsync(ClientOp.TupleDeleteExact, transaction, record).ConfigureAwait(false);
             return ReadSchemaAndBoolean(resBuf);
@@ -276,7 +276,7 @@ namespace Apache.Ignite.Internal.Table
         /// <inheritdoc/>
         public async Task<Option<T>> GetAndDeleteAsync(ITransaction? transaction, T key)
         {
-            ArgumentNullException.ThrowIfNull(key);
+            IgniteArgumentCheck.NotNull(key);
 
             using var resBuf = await DoRecordOutOpAsync(ClientOp.TupleGetAndDelete, transaction, key, keyOnly: true).ConfigureAwait(false);
             var resSchema = await _table.ReadSchemaAsync(resBuf).ConfigureAwait(false);
@@ -361,7 +361,7 @@ namespace Apache.Ignite.Internal.Table
             Action<TRes, T> addAction,
             bool exact)
         {
-            ArgumentNullException.ThrowIfNull(records);
+            IgniteArgumentCheck.NotNull(records);
 
             var clientOp = exact ? ClientOp.TupleDeleteAllExact : ClientOp.TupleDeleteAll;
             using var resBuf = await DoMultiRecordOutOpAsync(clientOp, transaction, records, keyOnly: !exact).ConfigureAwait(false);
diff --git a/modules/platforms/dotnet/Apache.Ignite/Internal/Table/Tables.cs b/modules/platforms/dotnet/Apache.Ignite/Internal/Table/Tables.cs
index f900ceea7f..e6b8340191 100644
--- a/modules/platforms/dotnet/Apache.Ignite/Internal/Table/Tables.cs
+++ b/modules/platforms/dotnet/Apache.Ignite/Internal/Table/Tables.cs
@@ -17,7 +17,6 @@
 
 namespace Apache.Ignite.Internal.Table
 {
-    using System;
     using System.Collections.Concurrent;
     using System.Collections.Generic;
     using System.Threading.Tasks;
@@ -101,7 +100,7 @@ namespace Apache.Ignite.Internal.Table
         /// <returns>Table.</returns>
         internal async Task<Table?> GetTableInternalAsync(string name)
         {
-            ArgumentNullException.ThrowIfNull(name);
+            IgniteArgumentCheck.NotNull(name);
 
             using var writer = ProtoCommon.GetMessageWriter();
             writer.MessageWriter.Write(name);
diff --git a/modules/platforms/dotnet/Apache.Ignite/Log/CategoryLogger.cs b/modules/platforms/dotnet/Apache.Ignite/Log/CategoryLogger.cs
index 2783d33383..67acfbc606 100644
--- a/modules/platforms/dotnet/Apache.Ignite/Log/CategoryLogger.cs
+++ b/modules/platforms/dotnet/Apache.Ignite/Log/CategoryLogger.cs
@@ -38,7 +38,7 @@ namespace Apache.Ignite.Log
         /// <param name="category">The category.</param>
         public CategoryLogger(IIgniteLogger logger, string category)
         {
-            ArgumentNullException.ThrowIfNull(logger);
+            IgniteArgumentCheck.NotNull(logger);
 
             // If logger is already a CategoryLogger, get underlying logger instead to avoid unnecessary nesting.
             _logger = logger is CategoryLogger catLogger ? catLogger._logger : logger;
diff --git a/modules/platforms/dotnet/Apache.Ignite/Log/LoggerExtensions.cs b/modules/platforms/dotnet/Apache.Ignite/Log/LoggerExtensions.cs
index c333e56275..d91af1749f 100644
--- a/modules/platforms/dotnet/Apache.Ignite/Log/LoggerExtensions.cs
+++ b/modules/platforms/dotnet/Apache.Ignite/Log/LoggerExtensions.cs
@@ -19,6 +19,7 @@ namespace Apache.Ignite.Log
 {
     using System;
     using System.Globalization;
+    using Internal.Common;
 
     /// <summary>
     /// Extension methods for <see cref="IIgniteLogger" />.
@@ -255,7 +256,7 @@ namespace Apache.Ignite.Log
         /// <param name="message">The message.</param>
         public static void Log(this IIgniteLogger logger, LogLevel level, string message)
         {
-            ArgumentNullException.ThrowIfNull(logger);
+            IgniteArgumentCheck.NotNull(logger);
 
             logger.Log(level, message, null, null, null, null, null);
         }
@@ -269,7 +270,7 @@ namespace Apache.Ignite.Log
         /// <param name="args">The arguments.</param>
         public static void Log(this IIgniteLogger logger, LogLevel level, string message, params object?[]? args)
         {
-            ArgumentNullException.ThrowIfNull(logger);
+            IgniteArgumentCheck.NotNull(logger);
 
             logger.Log(level, message, args, CultureInfo.InvariantCulture, null, null, null);
         }
@@ -283,7 +284,7 @@ namespace Apache.Ignite.Log
         /// <param name="message">The message.</param>
         public static void Log(this IIgniteLogger logger, LogLevel level, Exception? ex, string message)
         {
-            ArgumentNullException.ThrowIfNull(logger);
+            IgniteArgumentCheck.NotNull(logger);
 
             logger.Log(level, message, null, null, null, null, ex);
         }
@@ -298,7 +299,7 @@ namespace Apache.Ignite.Log
         /// <param name="args">The arguments.</param>
         public static void Log(this IIgniteLogger logger, LogLevel level, Exception? ex, string message, params object?[]? args)
         {
-            ArgumentNullException.ThrowIfNull(logger);
+            IgniteArgumentCheck.NotNull(logger);
 
             logger.Log(level, message, args, CultureInfo.InvariantCulture, null, null, ex);
         }
@@ -311,7 +312,7 @@ namespace Apache.Ignite.Log
         /// <returns>Logger that uses specified category when no other category is provided.</returns>
         public static IIgniteLogger? GetLogger(this IIgniteLogger? logger, string category)
         {
-            ArgumentNullException.ThrowIfNull(category);
+            IgniteArgumentCheck.NotNull(category);
 
             return logger == null ? null : new CategoryLogger(logger, category);
         }
@@ -324,7 +325,7 @@ namespace Apache.Ignite.Log
         /// <returns>Logger that uses specified category when no other category is provided.</returns>
         public static IIgniteLogger? GetLogger(this IIgniteLogger? logger, Type category)
         {
-            ArgumentNullException.ThrowIfNull(category);
+            IgniteArgumentCheck.NotNull(category);
 
             return logger == null ? null : new CategoryLogger(logger, category.Name);
         }
diff --git a/modules/platforms/dotnet/Apache.Ignite/RetryLimitPolicy.cs b/modules/platforms/dotnet/Apache.Ignite/RetryLimitPolicy.cs
index e63c2997c7..7dc2335e70 100644
--- a/modules/platforms/dotnet/Apache.Ignite/RetryLimitPolicy.cs
+++ b/modules/platforms/dotnet/Apache.Ignite/RetryLimitPolicy.cs
@@ -17,7 +17,6 @@
 
 namespace Apache.Ignite
 {
-    using System;
     using Internal.Common;
 
     /// <summary>
@@ -39,7 +38,7 @@ namespace Apache.Ignite
         /// <inheritdoc />
         public virtual bool ShouldRetry(IRetryPolicyContext context)
         {
-            ArgumentNullException.ThrowIfNull(context);
+            IgniteArgumentCheck.NotNull(context);
 
             if (RetryLimit <= 0)
             {
diff --git a/modules/platforms/dotnet/Apache.Ignite/RetryReadPolicy.cs b/modules/platforms/dotnet/Apache.Ignite/RetryReadPolicy.cs
index 29e50eeec4..ecd621a262 100644
--- a/modules/platforms/dotnet/Apache.Ignite/RetryReadPolicy.cs
+++ b/modules/platforms/dotnet/Apache.Ignite/RetryReadPolicy.cs
@@ -18,6 +18,7 @@
 namespace Apache.Ignite
 {
     using System;
+    using Internal.Common;
 
     /// <summary>
     /// Retry policy that returns true for all read-only operations that do not modify data.
@@ -27,7 +28,7 @@ namespace Apache.Ignite
         /// <inheritdoc />
         public override bool ShouldRetry(IRetryPolicyContext context)
         {
-            ArgumentNullException.ThrowIfNull(context);
+            IgniteArgumentCheck.NotNull(context);
 
             if (!base.ShouldRetry(context))
             {
diff --git a/modules/platforms/dotnet/Apache.Ignite/Sql/IgniteDbDataReader.cs b/modules/platforms/dotnet/Apache.Ignite/Sql/IgniteDbDataReader.cs
index 8a97741b1e..5d8ae93358 100644
--- a/modules/platforms/dotnet/Apache.Ignite/Sql/IgniteDbDataReader.cs
+++ b/modules/platforms/dotnet/Apache.Ignite/Sql/IgniteDbDataReader.cs
@@ -272,7 +272,7 @@ public sealed class IgniteDbDataReader : DbDataReader, IDbColumnSchemaGenerator
     /// <inheritdoc/>
     public override int GetValues(object[] values)
     {
-        ArgumentNullException.ThrowIfNull(values);
+        IgniteArgumentCheck.NotNull(values);
 
         var cols = Metadata.Columns;
         var count = Math.Min(values.Length, cols.Count);
diff --git a/modules/platforms/dotnet/Apache.Ignite/Sql/IgniteQueryableExtensions.Average.cs b/modules/platforms/dotnet/Apache.Ignite/Sql/IgniteQueryableExtensions.Average.cs
index 5e53f92751..9fd26d7057 100644
--- a/modules/platforms/dotnet/Apache.Ignite/Sql/IgniteQueryableExtensions.Average.cs
+++ b/modules/platforms/dotnet/Apache.Ignite/Sql/IgniteQueryableExtensions.Average.cs
@@ -23,6 +23,7 @@ using System.Linq;
 using System.Linq.Expressions;
 using System.Reflection;
 using System.Threading.Tasks;
+using Internal.Common;
 using Table;
 
 /// <summary>
@@ -43,7 +44,7 @@ public static partial class IgniteQueryableExtensions
     [DynamicDependency("Average`1", typeof(Queryable))]
     public static async Task<double> AverageAsync(this IQueryable<int> queryable)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<int>, double>(Queryable.Average).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression);
@@ -66,7 +67,7 @@ public static partial class IgniteQueryableExtensions
         this IQueryable<TSource> queryable,
         Expression<Func<TSource, int>> selector)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<TSource>, Expression<Func<TSource, int>>, double>(Queryable.Average).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression, Expression.Quote(selector));
@@ -85,7 +86,7 @@ public static partial class IgniteQueryableExtensions
     [DynamicDependency("Average`1", typeof(Queryable))]
     public static async Task<double?> AverageAsync(this IQueryable<int?> queryable)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<int?>, double?>(Queryable.Average).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression);
@@ -108,7 +109,7 @@ public static partial class IgniteQueryableExtensions
         this IQueryable<TSource> queryable,
         Expression<Func<TSource, int?>> selector)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<TSource>, Expression<Func<TSource, int?>>, double?>(Queryable.Average).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression, Expression.Quote(selector));
@@ -127,7 +128,7 @@ public static partial class IgniteQueryableExtensions
     [DynamicDependency("Average`1", typeof(Queryable))]
     public static async Task<double> AverageAsync(this IQueryable<long> queryable)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<long>, double>(Queryable.Average).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression);
@@ -150,7 +151,7 @@ public static partial class IgniteQueryableExtensions
         this IQueryable<TSource> queryable,
         Expression<Func<TSource, long>> selector)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<TSource>, Expression<Func<TSource, long>>, double>(Queryable.Average).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression, Expression.Quote(selector));
@@ -169,7 +170,7 @@ public static partial class IgniteQueryableExtensions
     [DynamicDependency("Average`1", typeof(Queryable))]
     public static async Task<double?> AverageAsync(this IQueryable<long?> queryable)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<long?>, double?>(Queryable.Average).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression);
@@ -192,7 +193,7 @@ public static partial class IgniteQueryableExtensions
         this IQueryable<TSource> queryable,
         Expression<Func<TSource, long?>> selector)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<TSource>, Expression<Func<TSource, long?>>, double?>(Queryable.Average).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression, Expression.Quote(selector));
@@ -211,7 +212,7 @@ public static partial class IgniteQueryableExtensions
     [DynamicDependency("Average`1", typeof(Queryable))]
     public static async Task<double> AverageAsync(this IQueryable<double> queryable)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<double>, double>(Queryable.Average).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression);
@@ -234,7 +235,7 @@ public static partial class IgniteQueryableExtensions
         this IQueryable<TSource> queryable,
         Expression<Func<TSource, double>> selector)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<TSource>, Expression<Func<TSource, double>>, double>(Queryable.Average).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression, Expression.Quote(selector));
@@ -253,7 +254,7 @@ public static partial class IgniteQueryableExtensions
     [DynamicDependency("Average`1", typeof(Queryable))]
     public static async Task<double?> AverageAsync(this IQueryable<double?> queryable)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<double?>, double?>(Queryable.Average).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression);
@@ -276,7 +277,7 @@ public static partial class IgniteQueryableExtensions
         this IQueryable<TSource> queryable,
         Expression<Func<TSource, double?>> selector)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<TSource>, Expression<Func<TSource, double?>>, double?>(Queryable.Average).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression, Expression.Quote(selector));
@@ -295,7 +296,7 @@ public static partial class IgniteQueryableExtensions
     [DynamicDependency("Average`1", typeof(Queryable))]
     public static async Task<float> AverageAsync(this IQueryable<float> queryable)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<float>, float>(Queryable.Average).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression);
@@ -318,7 +319,7 @@ public static partial class IgniteQueryableExtensions
         this IQueryable<TSource> queryable,
         Expression<Func<TSource, float>> selector)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<TSource>, Expression<Func<TSource, float>>, float>(Queryable.Average).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression, Expression.Quote(selector));
@@ -337,7 +338,7 @@ public static partial class IgniteQueryableExtensions
     [DynamicDependency("Average`1", typeof(Queryable))]
     public static async Task<float?> AverageAsync(this IQueryable<float?> queryable)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<float?>, float?>(Queryable.Average).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression);
@@ -360,7 +361,7 @@ public static partial class IgniteQueryableExtensions
         this IQueryable<TSource> queryable,
         Expression<Func<TSource, float?>> selector)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<TSource>, Expression<Func<TSource, float?>>, float?>(Queryable.Average).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression, Expression.Quote(selector));
@@ -379,7 +380,7 @@ public static partial class IgniteQueryableExtensions
     [DynamicDependency("Average`1", typeof(Queryable))]
     public static async Task<decimal> AverageAsync(this IQueryable<decimal> queryable)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<decimal>, decimal>(Queryable.Average).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression);
@@ -402,7 +403,7 @@ public static partial class IgniteQueryableExtensions
         this IQueryable<TSource> queryable,
         Expression<Func<TSource, decimal>> selector)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<TSource>, Expression<Func<TSource, decimal>>, decimal>(Queryable.Average).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression, Expression.Quote(selector));
@@ -421,7 +422,7 @@ public static partial class IgniteQueryableExtensions
     [DynamicDependency("Average`1", typeof(Queryable))]
     public static async Task<decimal?> AverageAsync(this IQueryable<decimal?> queryable)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<decimal?>, decimal?>(Queryable.Average).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression);
@@ -444,7 +445,7 @@ public static partial class IgniteQueryableExtensions
         this IQueryable<TSource> queryable,
         Expression<Func<TSource, decimal?>> selector)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<TSource>, Expression<Func<TSource, decimal?>>, decimal?>(Queryable.Average).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression, Expression.Quote(selector));
diff --git a/modules/platforms/dotnet/Apache.Ignite/Sql/IgniteQueryableExtensions.Dml.cs b/modules/platforms/dotnet/Apache.Ignite/Sql/IgniteQueryableExtensions.Dml.cs
index 1dcd555cfb..fb857b88a6 100644
--- a/modules/platforms/dotnet/Apache.Ignite/Sql/IgniteQueryableExtensions.Dml.cs
+++ b/modules/platforms/dotnet/Apache.Ignite/Sql/IgniteQueryableExtensions.Dml.cs
@@ -21,6 +21,7 @@ using System;
 using System.Linq;
 using System.Linq.Expressions;
 using System.Threading.Tasks;
+using Internal.Common;
 using Internal.Linq.Dml;
 using Table;
 
@@ -43,7 +44,7 @@ public static partial class IgniteQueryableExtensions
     /// <returns>Affected row count.</returns>
     public static async Task<long> ExecuteDeleteAsync<T>(this IQueryable<T> query)
     {
-        ArgumentNullException.ThrowIfNull(query);
+        IgniteArgumentCheck.NotNull(query);
 
         var method = ExecuteDeleteExpressionNode.MethodInfo.MakeGenericMethod(typeof(T));
         var provider = query.ToQueryableInternal().Provider;
@@ -64,7 +65,7 @@ public static partial class IgniteQueryableExtensions
     /// <returns>Affected row count.</returns>
     public static async Task<long> ExecuteDeleteAsync<T>(this IQueryable<T> query, Expression<Func<T, bool>> predicate)
     {
-        ArgumentNullException.ThrowIfNull(query);
+        IgniteArgumentCheck.NotNull(query);
 
         var method = ExecuteDeleteExpressionNode.PredicateMethodInfo.MakeGenericMethod(typeof(T));
         var provider = query.ToQueryableInternal().Provider;
@@ -87,8 +88,8 @@ public static partial class IgniteQueryableExtensions
         this IQueryable<T> query,
         Expression<Func<IUpdateDescriptor<T>, IUpdateDescriptor<T>>> updateDescriptor)
     {
-        ArgumentNullException.ThrowIfNull(query);
-        ArgumentNullException.ThrowIfNull(updateDescriptor);
+        IgniteArgumentCheck.NotNull(query);
+        IgniteArgumentCheck.NotNull(updateDescriptor);
 
         var method = ExecuteUpdateExpressionNode.MethodInfo.MakeGenericMethod(typeof(T));
         var provider = query.ToQueryableInternal().Provider;
diff --git a/modules/platforms/dotnet/Apache.Ignite/Sql/IgniteQueryableExtensions.Sum.cs b/modules/platforms/dotnet/Apache.Ignite/Sql/IgniteQueryableExtensions.Sum.cs
index 380f32298f..4d2fa6b9d5 100644
--- a/modules/platforms/dotnet/Apache.Ignite/Sql/IgniteQueryableExtensions.Sum.cs
+++ b/modules/platforms/dotnet/Apache.Ignite/Sql/IgniteQueryableExtensions.Sum.cs
@@ -23,6 +23,7 @@ using System.Linq;
 using System.Linq.Expressions;
 using System.Reflection;
 using System.Threading.Tasks;
+using Internal.Common;
 using Table;
 
 /// <summary>
@@ -43,7 +44,7 @@ public static partial class IgniteQueryableExtensions
     [DynamicDependency("Sum", typeof(Queryable))]
     public static async Task<int> SumAsync(this IQueryable<int> queryable)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<int>, int>(Queryable.Sum).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression);
@@ -66,7 +67,7 @@ public static partial class IgniteQueryableExtensions
         this IQueryable<TSource> queryable,
         Expression<Func<TSource, int>> selector)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<TSource>, Expression<Func<TSource, int>>, int>(Queryable.Sum).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression, Expression.Quote(selector));
@@ -85,7 +86,7 @@ public static partial class IgniteQueryableExtensions
     [DynamicDependency("Sum", typeof(Queryable))]
     public static async Task<int?> SumAsync(this IQueryable<int?> queryable)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<int?>, int?>(Queryable.Sum).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression);
@@ -108,7 +109,7 @@ public static partial class IgniteQueryableExtensions
         this IQueryable<TSource> queryable,
         Expression<Func<TSource, int?>> selector)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<TSource>, Expression<Func<TSource, int?>>, int?>(Queryable.Sum).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression, Expression.Quote(selector));
@@ -127,7 +128,7 @@ public static partial class IgniteQueryableExtensions
     [DynamicDependency("Sum", typeof(Queryable))]
     public static async Task<long> SumAsync(this IQueryable<long> queryable)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<long>, long>(Queryable.Sum).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression);
@@ -150,7 +151,7 @@ public static partial class IgniteQueryableExtensions
         this IQueryable<TSource> queryable,
         Expression<Func<TSource, long>> selector)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<TSource>, Expression<Func<TSource, long>>, long>(Queryable.Sum).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression, Expression.Quote(selector));
@@ -169,7 +170,7 @@ public static partial class IgniteQueryableExtensions
     [DynamicDependency("Sum", typeof(Queryable))]
     public static async Task<long?> SumAsync(this IQueryable<long?> queryable)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<long?>, long?>(Queryable.Sum).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression);
@@ -192,7 +193,7 @@ public static partial class IgniteQueryableExtensions
         this IQueryable<TSource> queryable,
         Expression<Func<TSource, long?>> selector)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<TSource>, Expression<Func<TSource, long?>>, long?>(Queryable.Sum).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression, Expression.Quote(selector));
@@ -211,7 +212,7 @@ public static partial class IgniteQueryableExtensions
     [DynamicDependency("Sum", typeof(Queryable))]
     public static async Task<float> SumAsync(this IQueryable<float> queryable)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<float>, float>(Queryable.Sum).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression);
@@ -234,7 +235,7 @@ public static partial class IgniteQueryableExtensions
         this IQueryable<TSource> queryable,
         Expression<Func<TSource, float>> selector)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<TSource>, Expression<Func<TSource, float>>, float>(Queryable.Sum).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression, Expression.Quote(selector));
@@ -253,7 +254,7 @@ public static partial class IgniteQueryableExtensions
     [DynamicDependency("Sum", typeof(Queryable))]
     public static async Task<float?> SumAsync(this IQueryable<float?> queryable)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<float?>, float?>(Queryable.Sum).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression);
@@ -276,7 +277,7 @@ public static partial class IgniteQueryableExtensions
         this IQueryable<TSource> queryable,
         Expression<Func<TSource, float?>> selector)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<TSource>, Expression<Func<TSource, float?>>, float?>(Queryable.Sum).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression, Expression.Quote(selector));
@@ -295,7 +296,7 @@ public static partial class IgniteQueryableExtensions
     [DynamicDependency("Sum", typeof(Queryable))]
     public static async Task<double> SumAsync(this IQueryable<double> queryable)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<double>, double>(Queryable.Sum).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression);
@@ -318,7 +319,7 @@ public static partial class IgniteQueryableExtensions
         this IQueryable<TSource> queryable,
         Expression<Func<TSource, double>> selector)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<TSource>, Expression<Func<TSource, double>>, double>(Queryable.Sum).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression, Expression.Quote(selector));
@@ -337,7 +338,7 @@ public static partial class IgniteQueryableExtensions
     [DynamicDependency("Sum", typeof(Queryable))]
     public static async Task<double?> SumAsync(this IQueryable<double?> queryable)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<double?>, double?>(Queryable.Sum).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression);
@@ -360,7 +361,7 @@ public static partial class IgniteQueryableExtensions
         this IQueryable<TSource> queryable,
         Expression<Func<TSource, double?>> selector)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<TSource>, Expression<Func<TSource, double?>>, double?>(Queryable.Sum).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression, Expression.Quote(selector));
@@ -379,7 +380,7 @@ public static partial class IgniteQueryableExtensions
     [DynamicDependency("Sum", typeof(Queryable))]
     public static async Task<decimal> SumAsync(this IQueryable<decimal> queryable)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<decimal>, decimal>(Queryable.Sum).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression);
@@ -402,7 +403,7 @@ public static partial class IgniteQueryableExtensions
         this IQueryable<TSource> queryable,
         Expression<Func<TSource, decimal>> selector)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<TSource>, Expression<Func<TSource, decimal>>, decimal>(Queryable.Sum).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression, Expression.Quote(selector));
@@ -421,7 +422,7 @@ public static partial class IgniteQueryableExtensions
     [DynamicDependency("Sum", typeof(Queryable))]
     public static async Task<decimal?> SumAsync(this IQueryable<decimal?> queryable)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<decimal?>, decimal?>(Queryable.Sum).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression);
@@ -444,7 +445,7 @@ public static partial class IgniteQueryableExtensions
         this IQueryable<TSource> queryable,
         Expression<Func<TSource, decimal?>> selector)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<TSource>, Expression<Func<TSource, decimal?>>, decimal?>(Queryable.Sum).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression, Expression.Quote(selector));
diff --git a/modules/platforms/dotnet/Apache.Ignite/Sql/IgniteQueryableExtensions.cs b/modules/platforms/dotnet/Apache.Ignite/Sql/IgniteQueryableExtensions.cs
index 6184aef233..61e5dc1db6 100644
--- a/modules/platforms/dotnet/Apache.Ignite/Sql/IgniteQueryableExtensions.cs
+++ b/modules/platforms/dotnet/Apache.Ignite/Sql/IgniteQueryableExtensions.cs
@@ -24,6 +24,7 @@ using System.Linq;
 using System.Linq.Expressions;
 using System.Reflection;
 using System.Threading.Tasks;
+using Internal.Common;
 using Internal.Linq;
 using Table;
 
@@ -44,7 +45,7 @@ public static partial class IgniteQueryableExtensions
     /// <returns>Result set.</returns>
     public static async Task<IResultSet<T>> ToResultSetAsync<T>(this IQueryable<T> queryable)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var queryableInternal = queryable.ToQueryableInternal();
         var model = queryableInternal.GetQueryModel();
@@ -62,7 +63,7 @@ public static partial class IgniteQueryableExtensions
     [SuppressMessage("Reliability", "CA2007:Consider calling ConfigureAwait on the awaited task", Justification = "False positive.")]
     public static async IAsyncEnumerable<T> AsAsyncEnumerable<T>(this IQueryable<T> queryable)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         await using var resultSet = await queryable.ToResultSetAsync().ConfigureAwait(false);
 
@@ -84,7 +85,7 @@ public static partial class IgniteQueryableExtensions
     [DynamicDependency("Any`1", typeof(Queryable))]
     public static async Task<bool> AnyAsync<TSource>(this IQueryable<TSource> queryable)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<TSource>, bool>(Queryable.Any).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression);
@@ -107,7 +108,7 @@ public static partial class IgniteQueryableExtensions
     [DynamicDependency("Any`1", typeof(Queryable))]
     public static async Task<bool> AnyAsync<TSource>(this IQueryable<TSource> queryable, Expression<Func<TSource, bool>> predicate)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<TSource>, Expression<Func<TSource, bool>>, bool>(Queryable.Any).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression, Expression.Quote(predicate));
@@ -129,7 +130,7 @@ public static partial class IgniteQueryableExtensions
     [DynamicDependency("All`1", typeof(Queryable))]
     public static async Task<bool> AllAsync<TSource>(this IQueryable<TSource> queryable, Expression<Func<TSource, bool>> predicate)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<TSource>, Expression<Func<TSource, bool>>, bool>(Queryable.All).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression, Expression.Quote(predicate));
@@ -148,7 +149,7 @@ public static partial class IgniteQueryableExtensions
     [DynamicDependency("Count`1", typeof(Queryable))]
     public static async Task<int> CountAsync<TSource>(this IQueryable<TSource> queryable)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<TSource>, int>(Queryable.Count).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression);
@@ -168,7 +169,7 @@ public static partial class IgniteQueryableExtensions
     [DynamicDependency("Count`1", typeof(Queryable))]
     public static async Task<int> CountAsync<TSource>(this IQueryable<TSource> queryable, Expression<Func<TSource, bool>> predicate)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<TSource>, Expression<Func<TSource, bool>>, int>(Queryable.Count).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression, Expression.Quote(predicate));
@@ -187,7 +188,7 @@ public static partial class IgniteQueryableExtensions
     [DynamicDependency("LongCount`1", typeof(Queryable))]
     public static async Task<long> LongCountAsync<TSource>(this IQueryable<TSource> queryable)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<TSource>, long>(Queryable.LongCount).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression);
@@ -207,7 +208,7 @@ public static partial class IgniteQueryableExtensions
     [DynamicDependency("LongCount`1", typeof(Queryable))]
     public static async Task<long> LongCountAsync<TSource>(this IQueryable<TSource> queryable, Expression<Func<TSource, bool>> predicate)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<TSource>, Expression<Func<TSource, bool>>, long>(Queryable.LongCount).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression, Expression.Quote(predicate));
@@ -226,7 +227,7 @@ public static partial class IgniteQueryableExtensions
     [DynamicDependency("First`1", typeof(Queryable))]
     public static async Task<TSource> FirstAsync<TSource>(this IQueryable<TSource> queryable)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<TSource>, TSource>(Queryable.First).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression);
@@ -246,7 +247,7 @@ public static partial class IgniteQueryableExtensions
     [DynamicDependency("First`1", typeof(Queryable))]
     public static async Task<TSource> FirstAsync<TSource>(this IQueryable<TSource> queryable, Expression<Func<TSource, bool>> predicate)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<TSource>, Expression<Func<TSource, bool>>, TSource>(Queryable.First).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression, Expression.Quote(predicate));
@@ -267,7 +268,7 @@ public static partial class IgniteQueryableExtensions
     [DynamicDependency("FirstOrDefault`1", typeof(Queryable))]
     public static async Task<TSource?> FirstOrDefaultAsync<TSource>(this IQueryable<TSource> queryable)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<TSource>, TSource?>(Queryable.FirstOrDefault).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression);
@@ -291,7 +292,7 @@ public static partial class IgniteQueryableExtensions
         this IQueryable<TSource> queryable,
         Expression<Func<TSource, bool>> predicate)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<TSource>, Expression<Func<TSource, bool>>, TSource?>(Queryable.FirstOrDefault).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression, Expression.Quote(predicate));
@@ -311,7 +312,7 @@ public static partial class IgniteQueryableExtensions
     [DynamicDependency("Single`1", typeof(Queryable))]
     public static async Task<TSource> SingleAsync<TSource>(this IQueryable<TSource> queryable)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<TSource>, TSource>(Queryable.Single).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression);
@@ -332,7 +333,7 @@ public static partial class IgniteQueryableExtensions
     [DynamicDependency("Single`1", typeof(Queryable))]
     public static async Task<TSource> SingleAsync<TSource>(this IQueryable<TSource> queryable, Expression<Func<TSource, bool>> predicate)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<TSource>, Expression<Func<TSource, bool>>, TSource>(Queryable.Single).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression, Expression.Quote(predicate));
@@ -354,7 +355,7 @@ public static partial class IgniteQueryableExtensions
     [DynamicDependency("SingleOrDefault`1", typeof(Queryable))]
     public static async Task<TSource?> SingleOrDefaultAsync<TSource>(this IQueryable<TSource> queryable)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<TSource>, TSource?>(Queryable.SingleOrDefault).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression);
@@ -379,7 +380,7 @@ public static partial class IgniteQueryableExtensions
         this IQueryable<TSource> queryable,
         Expression<Func<TSource, bool>> predicate)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<TSource>, Expression<Func<TSource, bool>>, TSource?>(Queryable.SingleOrDefault).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression, Expression.Quote(predicate));
@@ -399,7 +400,7 @@ public static partial class IgniteQueryableExtensions
     [DynamicDependency("Min`1", typeof(Queryable))]
     public static async Task<TSource> MinAsync<TSource>(this IQueryable<TSource> queryable)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<TSource>, TSource?>(Queryable.Min).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression);
@@ -425,7 +426,7 @@ public static partial class IgniteQueryableExtensions
         this IQueryable<TSource> queryable,
         Expression<Func<TSource, TResult>> selector)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<TSource>, Expression<Func<TSource, TResult>>, TResult?>(Queryable.Min).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression, Expression.Quote(selector));
@@ -445,7 +446,7 @@ public static partial class IgniteQueryableExtensions
     [DynamicDependency("Max`1", typeof(Queryable))]
     public static async Task<TSource> MaxAsync<TSource>(this IQueryable<TSource> queryable)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<TSource>, TSource?>(Queryable.Max).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression);
@@ -469,7 +470,7 @@ public static partial class IgniteQueryableExtensions
         this IQueryable<TSource> queryable,
         Expression<Func<TSource, TResult>> selector)
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         var method = new Func<IQueryable<TSource>, Expression<Func<TSource, TResult>>, TResult?>(Queryable.Max).GetMethodInfo();
         var expression = Expression.Call(null, method, queryable.Expression, Expression.Quote(selector));
@@ -490,7 +491,7 @@ public static partial class IgniteQueryableExtensions
     public static async Task<List<TSource>> ToListAsync<TSource>(this IQueryable<TSource> queryable)
     {
         // NOTE: ToArrayAsync counterpart is not implemented here, because it is just ToList().ToArray(), which is less efficient.
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         await using var resultSet = await queryable.ToResultSetAsync().ConfigureAwait(false);
 
@@ -518,7 +519,7 @@ public static partial class IgniteQueryableExtensions
         IEqualityComparer<TK>? comparer = null)
         where TK : notnull
     {
-        ArgumentNullException.ThrowIfNull(queryable);
+        IgniteArgumentCheck.NotNull(queryable);
 
         await using var resultSet = await queryable.ToResultSetAsync().ConfigureAwait(false);
 
diff --git a/modules/platforms/dotnet/Apache.Ignite/Sql/SqlStatement.cs b/modules/platforms/dotnet/Apache.Ignite/Sql/SqlStatement.cs
index 83ecd54a4f..b6f1060258 100644
--- a/modules/platforms/dotnet/Apache.Ignite/Sql/SqlStatement.cs
+++ b/modules/platforms/dotnet/Apache.Ignite/Sql/SqlStatement.cs
@@ -62,7 +62,7 @@ namespace Apache.Ignite.Sql
             int? pageSize = null,
             IReadOnlyDictionary<string, object?>? properties = null)
         {
-            ArgumentNullException.ThrowIfNull(query);
+            IgniteArgumentCheck.NotNull(query);
             IgniteArgumentCheck.Ensure(pageSize is null or > 0, nameof(pageSize), "Page size must be positive.");
 
             Query = query;
diff --git a/modules/platforms/dotnet/Apache.Ignite/SslStreamFactory.cs b/modules/platforms/dotnet/Apache.Ignite/SslStreamFactory.cs
index 735f0802ad..5ac5a87fbc 100644
--- a/modules/platforms/dotnet/Apache.Ignite/SslStreamFactory.cs
+++ b/modules/platforms/dotnet/Apache.Ignite/SslStreamFactory.cs
@@ -17,7 +17,6 @@
 
 namespace Apache.Ignite;
 
-using System;
 using System.IO;
 using System.Net.Security;
 using System.Threading.Tasks;
@@ -36,7 +35,7 @@ public sealed class SslStreamFactory : ISslStreamFactory
     /// <inheritdoc />
     public async Task<SslStream?> CreateAsync(Stream stream, string targetHost)
     {
-        ArgumentNullException.ThrowIfNull(stream);
+        IgniteArgumentCheck.NotNull(stream);
 
         var sslStream = new SslStream(stream, false, null, null);
 
diff --git a/modules/platforms/dotnet/Apache.Ignite/Table/IIgniteTuple.cs b/modules/platforms/dotnet/Apache.Ignite/Table/IIgniteTuple.cs
index 8a60f00d4d..c1b752646f 100644
--- a/modules/platforms/dotnet/Apache.Ignite/Table/IIgniteTuple.cs
+++ b/modules/platforms/dotnet/Apache.Ignite/Table/IIgniteTuple.cs
@@ -66,7 +66,7 @@ namespace Apache.Ignite.Table
         /// <returns>A hash code for the specified tuple.</returns>
         public static int GetHashCode(IIgniteTuple tuple)
         {
-            ArgumentNullException.ThrowIfNull(tuple);
+            IgniteArgumentCheck.NotNull(tuple);
 
             var hash = default(HashCode);
 
@@ -136,7 +136,7 @@ namespace Apache.Ignite.Table
         /// <returns>String representation.</returns>
         public static string ToString(IIgniteTuple tuple)
         {
-            ArgumentNullException.ThrowIfNull(tuple);
+            IgniteArgumentCheck.NotNull(tuple);
             var builder = new IgniteToStringBuilder(tuple.GetType());
 
             for (var i = 0; i < tuple.FieldCount; i++)