public CashDBClient(string connectionString) { lock (InitializationRoot) { if (++_clientCount == 1) { var err = PInvokes.cashdb_initialize(); if (err != ReturnCode.SUCCESS) { throw new CashDBException("CashDB initialization failed.", err); } } } var status = PInvokes.cashdb_connect(connectionString, out _connection); if (ReturnCode.SUCCESS != status) { throw new CashDBException("Invalid connection to a CashDB instance.", status); } }