Beispiel #1
0
 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));
     }
 }
Beispiel #2
0
        /// <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);
        }