public static ObjectPool<Connection> GetConnectionPool(ConnectionSetting connectionSetting) { if (connectionSetting == null) throw new ArgumentNullException("connectionSetting"); var key = connectionSetting.ConnectionString; ObjectPool<Connection> connectionPool = null; lock ((ConnectionPools as ICollection).SyncRoot) { if (ConnectionPools.ContainsKey(key)) connectionPool = ConnectionPools[key]; if (connectionPool == null) { connectionPool = new ObjectPool<Connection>( new ConnectionFactory(connectionSetting), new ObjectPool<Connection>.Configuration { MinSize = connectionSetting.MinPoolSize, MaxSize = connectionSetting.MaxPoolSize, Timeout = connectionSetting.ConnectionTimeout }); ConnectionPools[key] = connectionPool; } } return connectionPool as ObjectPool<Connection>; }
public Mongo(ConnectionSetting connectionSetting) { this.connectionSetting = connectionSetting ?? new ConnectionSetting(); }