Inheritance: ICloneable
Beispiel #1
0
        public object Clone()
        {
            BeanConfig bc = null;

            try
            {
                bc = (BeanConfig)Activator.CreateInstance(GetType());
            }
            catch (TargetInvocationException e)
            {
                throw new ConfigException(e);
            }
            catch (MemberAccessException e)
            {
                throw new ConfigException(e);
            }
            if (bc == null)
            {
                return(null);
            }
            bc.ClassName = ClassName;
            bc.Name      = Name;
            var @params = new Dictionary <string, object>(StringComparer.OrdinalIgnoreCase);

            @params.AddRange(@params);
            bc.@params = @params;
            return(bc);
        }
Beispiel #2
0
        /// <exception cref="System.MemberAccessException" />
        /// <exception cref="System.Reflection.TargetInvocationException" />
        public static object CreateBean(BeanConfig config)
        {
            var bean = config.Create(true);

            if (bean is IDictionary <string, object> )
            {
                var map = (IDictionary <string, object>)bean;
                foreach (var entry in config.Params)
                {
                    var key   = entry.Key;
                    var value = entry.Value;
                    if (value is BeanConfig)
                    {
                        var mapBeanConfig = (BeanConfig)entry.Value;
                        value = mapBeanConfig.Create(true);
                        Mapping(value, mapBeanConfig.Params);
                    }
                    map[key] = value;
                }
            }
            else if (bean is IList <object> )
            {
                //
            }
            else
            {
                Mapping(bean, config.Params);
            }
            return(bean);
        }
Beispiel #3
0
        public static BeanConfig LoadBean(XmlElement e)
        {
            if (e == null)
            {
                return(null);
            }

            var bean = new BeanConfig();

            bean.Name = e.GetAttribute("name");
            var element = LoadElement(e, "className");

            if (element != null)
            {
                bean.ClassName = element.InnerText;
            }
            else
            {
                bean.ClassName = e.GetAttribute("class");
            }

            bean.Params = LoadElements(e);
            return(bean);
        }
 /// <exception cref="System.MemberAccessException" />
 /// <exception cref="System.Reflection.TargetInvocationException" />
     public static object CreateBean(BeanConfig config)
     {
         var bean = config.Create(true);
         if (bean is IDictionary<string, object>)
         {
             var map = (IDictionary<string, object>) bean;
             foreach (var entry in config.Params)
             {
                 var key = entry.Key;
                 var value = entry.Value;
                 if (value is BeanConfig)
                 {
                     var mapBeanConfig = (BeanConfig) entry.Value;
                     value = mapBeanConfig.Create(true);
                     Mapping(value, mapBeanConfig.Params);
                 }
                 map[key] = value;
             }
         }
         else if (bean is IList<object>)
         {
             //
         }
         else
         {
             Mapping(bean, config.Params);
         }
         return bean;
     }
Beispiel #5
0
        public static BeanConfig LoadBean(XmlElement e)
        {
            if (e == null)
                return null;

            var bean = new BeanConfig();
            bean.Name = e.GetAttribute("name");
            var element = LoadElement(e, "className");

            if (element != null)
                bean.ClassName = element.InnerText;
            else
                bean.ClassName = e.GetAttribute("class");

            bean.Params = LoadElements(e);
            return bean;
        }