diff --git a/CryptoExchange.Net/Clients/BaseClient.cs b/CryptoExchange.Net/Clients/BaseClient.cs
index 6455958..dce39b2 100644
--- a/CryptoExchange.Net/Clients/BaseClient.cs
+++ b/CryptoExchange.Net/Clients/BaseClient.cs
@@ -12,6 +12,28 @@ namespace CryptoExchange.Net.Clients
///
public abstract class BaseClient : IDisposable
{
+ ///
+ /// Version of the CryptoExchange.Net base library
+ ///
+ public Version CryptoExchangeLibVersion { get; } = typeof(BaseClient).Assembly.GetName().Version;
+
+ ///
+ /// Version of the client implementation
+ ///
+ public Version ExchangeLibVersion
+ {
+ get
+ {
+ lock(_versionLock)
+ {
+ if (_exchangeVersion == null)
+ _exchangeVersion = GetType().Assembly.GetName().Version;
+
+ return _exchangeVersion;
+ }
+ }
+ }
+
///
/// The name of the API the client is for
///
@@ -27,6 +49,9 @@ namespace CryptoExchange.Net.Clients
///
protected internal ILogger _logger;
+ private object _versionLock = new object();
+ private Version _exchangeVersion;
+
///
/// Provided client options
///
@@ -57,7 +82,7 @@ namespace CryptoExchange.Net.Clients
throw new ArgumentNullException(nameof(options));
ClientOptions = options;
- _logger.Log(LogLevel.Trace, $"Client configuration: {options}, CryptoExchange.Net: v{typeof(BaseClient).Assembly.GetName().Version}, {Exchange}.Net: v{GetType().Assembly.GetName().Version}");
+ _logger.Log(LogLevel.Trace, $"Client configuration: {options}, CryptoExchange.Net: v{CryptoExchangeLibVersion}, {Exchange}.Net: v{ExchangeLibVersion}");
}
///