private ConnectionInfo GetInfo(string connectionString) { string[] properties = connectionString.Split(';'); IDictionary<string, string> propertyPair = new Dictionary<string, string>(); foreach(var v in properties) { var keyValue = v.Split('='); if(keyValue.Length!=2) { throw new Exception("连接字符串格式出错," + v + "格式有误"); } var key =keyValue[0].ToLower().Trim(); var value = keyValue[1].ToLower().Trim(); propertyPair[key] = value; } var connectionInfo = new ConnectionInfo() { Name = _connectionName, HostName = propertyPair["hostname"], Password = propertyPair["password"], Port = Convert.ToInt32(propertyPair["port"]), /// 转换错误 自然报错 UserName = propertyPair["username"], VirtualHost = propertyPair["virtualhost"] }; return connectionInfo; }
public IConnection Connect(ConnectionInfo connectionInfo) { var connFactory = new ConnectionFactory() { HostName = connectionInfo.HostName, Port = connectionInfo.Port, UserName = connectionInfo.UserName, Password = connectionInfo.Password, VirtualHost = connectionInfo.VirtualHost, AutomaticRecoveryEnabled = _rabbitMqConfiguration.AutomaticRecovery, NetworkRecoveryInterval=_rabbitMqConfiguration.NetworkRecoveryInterval }; var connection = connFactory.CreateConnection(); return connection; }
public void SetConnectionInfo(ConnectionInfo info) { _currentConnectionInfos[info.Name] = info; }