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;
 }
Пример #2
0
        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;
 }