internal ConnectionItem GetConnectionConfig(string name, bool isRead) { DataBaseConfig dataBaseConfig = this.cache.DataBaseList.FirstOrDefault <DataBaseConfig>((Func <DataBaseConfig, bool>)(p => p.Name == name)); if (dataBaseConfig == null) { return((ConnectionItem)null); } ConnectionItem connectionItem = dataBaseConfig.GetConnectionItem(isRead); if (connectionItem == null) { throw new Exception("无法找到匹配的数据库连接,请求的数据库是" + name + ",请求的数据库类型为" + (isRead ? "读库" : "写库")); } return(connectionItem); }
public static ConnectionConfig XmlToConfig(string xml) { ConnectionConfig connectionConfig = new ConnectionConfig(); XElement xelement1 = XDocument.Load((TextReader) new StringReader(xml)).Element((XName)"tcbase.dataAccess"); if (xelement1 == null) { return(connectionConfig); } XAttribute xattribute1 = xelement1.Attribute((XName)"name"); if (xattribute1 != null) { connectionConfig.Name = xattribute1.Value; } foreach (XElement element1 in xelement1.Elements((XName)"database")) { DataBaseConfig dataBaseConfig = new DataBaseConfig(); connectionConfig.DataBaseList.Add(dataBaseConfig); XAttribute xattribute2 = element1.Attribute((XName)"name"); if (xattribute2 != null) { dataBaseConfig.Name = xattribute2.Value; } XAttribute xattribute3 = element1.Attribute((XName)"default"); if (xattribute3 != null) { dataBaseConfig.IsDefault = !(xattribute3.Value == "false"); } XElement xelement2 = element1.Element((XName)"read"); if (xelement2 != null) { foreach (XElement element2 in xelement2.Elements((XName)"server")) { ConnectionItem connectionItem = new ConnectionItem(); dataBaseConfig.ReadList.Add(connectionItem); XAttribute xattribute4 = element2.Attribute((XName)"enabled"); if (xattribute4 != null) { connectionItem.Enabled = !(xattribute4.Value.ToLower() == "false"); } XAttribute xattribute5 = element2.Attribute((XName)"encrypt"); connectionItem.Encrypt = xattribute5 == null || !(xattribute5.Value.ToLower() == "false"); XAttribute xattribute6 = element2.Attribute((XName)"weight"); if (xattribute6 != null) { connectionItem.Weight = Convert.ToInt32(xattribute6.Value); } XAttribute xattribute7 = element2.Attribute((XName)"connectionString"); if (xattribute7 != null) { connectionItem.ConnectionString = xattribute7.Value; } XAttribute xattribute8 = element2.Attribute((XName)"commandTimeOut"); if (xattribute8 != null) { connectionItem.CommandTimeOut = Convert.ToInt32(xattribute8.Value); } XAttribute xattribute9 = element2.Attribute((XName)"provider"); if (xattribute9 != null) { connectionItem.Provider = xattribute9.Value; } } } XElement xelement3 = element1.Element((XName)"write"); if (xelement3 != null) { foreach (XElement element2 in xelement3.Elements((XName)"server")) { ConnectionItem connectionItem = new ConnectionItem(); dataBaseConfig.WriteList.Add(connectionItem); XAttribute xattribute4 = element2.Attribute((XName)"enabled"); if (xattribute4 != null) { connectionItem.Enabled = !(xattribute4.Value == "false"); } XAttribute xattribute5 = element2.Attribute((XName)"encrypt"); connectionItem.Encrypt = xattribute5 == null || !(xattribute5.Value == "false"); XAttribute xattribute6 = element2.Attribute((XName)"weight"); if (xattribute6 != null) { connectionItem.Weight = Convert.ToInt32(xattribute6.Value); } XAttribute xattribute7 = element2.Attribute((XName)"connectionString"); if (xattribute7 != null) { connectionItem.ConnectionString = xattribute7.Value; } XAttribute xattribute8 = element2.Attribute((XName)"commandTimeOut"); if (xattribute8 != null) { connectionItem.CommandTimeOut = Convert.ToInt32(xattribute8.Value); } XAttribute xattribute9 = element2.Attribute((XName)"provider"); if (xattribute9 != null) { connectionItem.Provider = xattribute9.Value; } } } } return(connectionConfig); }