Exemplo n.º 1
0
        /// <summary>
        ///     使用字符串连接来填充
        /// </summary>
        /// <remarks>http://www.mongodb.org/display/DOCS/Connections</remarks>
        /// <param name="config"></param>
        public static String FillConfigWithConnectionString(ref ConfigHelper.MongoConnectionConfig config)
        {
            String connectionString = config.ConnectionString;

            //mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
            try
            {
                MongoUrl mongourl = MongoUrl.Create(connectionString);
                config.DataBaseName = mongourl.DatabaseName;
                if (mongourl.Username != null)
                {
                    config.UserName = mongourl.Username;
                    config.Password = mongourl.Password;
                    //config.LoginAsAdmin = mongourl.Admin;
                }
                config.Host = mongourl.Server.Host;
                config.Port = mongourl.Server.Port;

                config.ReadPreference      = mongourl.ReadPreference.ToString();
                config.WriteConcern        = mongourl.GetWriteConcern(true).ToString();
                config.WaitQueueSize       = mongourl.WaitQueueSize;
                config.wtimeoutMS          = (int)mongourl.WaitQueueTimeout.TotalMilliseconds;
                config.IsUseDefaultSetting = false;

                config.socketTimeoutMS  = (int)mongourl.SocketTimeout.TotalMilliseconds;
                config.connectTimeoutMS = (int)mongourl.ConnectTimeout.TotalMilliseconds;
                config.ReplSetName      = mongourl.ReplicaSetName;
                foreach (MongoServerAddress item in mongourl.Servers)
                {
                    config.ReplsetList.Add(item.Host + (item.Port == 0 ? String.Empty : ":" + item.Port));
                }
                return(String.Empty);
            }
            catch (FormatException ex)
            {
                return(ex.ToString());
            }
            catch (Exception ex)
            {
                return(ex.ToString());
            }
        }