// 初始化 public int Init(string configFile, out string error) { error = ""; // 解析xml XmlDocument dom = new XmlDocument(); try { dom.Load(configFile); } catch (Exception ex) { error = ex.Message; return(-1); } XmlNode root = dom.DocumentElement; /* * <root> * <datasource servertype="mognodb" servername="mongodb://localhost:27017" userid="" password="" /> * <keysize>255</keysize> * <db name="bible" idrule='guid' seed='1' /> * <db name="entity" idrule='guid' seed='1'/> * </root> */ this.Connection = DomUtil.GetElementAttr(root, "datasource", "servername"); this.MClient = new MongoClient(this.Connection); string keysizeStr = DomUtil.GetElementText(root, "keysize"); this.keysize = Convert.ToInt32(keysize); XmlNodeList dbList = root.SelectNodes("db"); foreach (XmlNode node in dbList) { string name = DomUtil.GetElementAttr(node, "", "name"); if (name == "biblio") { this.BiblioDb = new BiblioDatabase(node); } else if (name == "entity") { this.EntityDb = new EntityDatabase(node); } else { // 不支持的数据库类型 } } return(0); }
// <db name="bible" idrule='guid' seed='1' /> public BaseDatabase(XmlNode node) { this.Name = DomUtil.GetElementAttr(node, "", "name"); this.IdRule = DomUtil.GetElementAttr(node, "", "idrule"); string seedStr = DomUtil.GetElementAttr(node, "", "seed"); if (string.IsNullOrEmpty(seedStr) == false) { this.Seed = Convert.ToInt32(seedStr); } // 根据连接字符串,打开mongodb库 this.Database = DbWrapper.Instance.MClient.GetDatabase(this.Name); this.RecordCollection = this.Database.GetCollection <Record>("record"); //todo // 创建索引 }