public ConnectionStringBuilder(NameValueCollection collection) { strategies = new List <KeyValuePair <string, ConnectionStringStrategyBase> >(); foreach (string key in collection.Keys) { string typeName = collection[key]; Type type = Type.GetType(typeName); ConnectionStringStrategyBase strategy = (ConnectionStringStrategyBase)Activator.CreateInstance(type); strategies.Add(new KeyValuePair <string, ConnectionStringStrategyBase>( key, strategy)); } }
/// <summary> /// 对连接串配置对象逐个处理后返回 /// </summary> /// <returns></returns> public IDictionary <string, ConnectionStringSettings> BuildUp() { IDictionary <string, ConnectionStringSettings> result = GetConnectionsCopy(); if ((Strategies != null) && (Strategies.Count > 0)) { foreach (KeyValuePair <string, ConnectionStringStrategyBase> pair in Strategies) { string name = pair.Key; ConnectionStringSettings setting = result[name]; ConnectionStringStrategyBase strategy = pair.Value; strategy.Process(ref setting); } } return(result); }