示例#1
0
        public IDbObjectHandler CreateDbObjectHandler()
        {
            if (Info.HandleType.IsGenericType)
            {
                switch (Info.HandleType.Name)
                {
                case "GroupByObject`1":
                    var t = typeof(GroupbyObjectHandler <>).MakeGenericType(Info.HandleType.GetGenericArguments());
                    return((IDbObjectHandler)ClassHelper.CreateInstance(t));

                case "GroupBySumObject`2":
                    var ts = typeof(GroupbySumObjectHandler <,>).MakeGenericType(Info.HandleType.GetGenericArguments());
                    return((IDbObjectHandler)ClassHelper.CreateInstance(ts));

                default:
                    throw new NotSupportedException();
                }
            }

            /*
             * var attr = Info.HandleType.GetAttribute<InstanceHandlerAttribute>(false);
             * if (attr != null)
             * {
             * var o = (EmitObjectHandlerBase)ClassHelper.CreateInstance(attr.Type);
             * o.Init(Info);
             * return o;
             * }
             * throw new ModelException(Info.HandleType, "Can not find ObjectHandler. REF: http://dbentry.codeplex.com/wikipage?title=Setup");
             */
            var gen = new ModelHandlerGenerator(Info);
            var o   = (EmitObjectHandlerBase)ClassHelper.CreateInstance(gen.Generate());

            o.Init(Info);
            return(o);
        }
示例#2
0
        public IDbObjectHandler CreateDbObjectHandler()
        {
            if (Info.HandleType.IsGenericType)
            {
                switch (Info.HandleType.Name)
                {
                case "GroupByObject`1":
                    var t = typeof(GroupbyObjectHandler <>).MakeGenericType(Info.HandleType.GetGenericArguments());
                    return((IDbObjectHandler)ClassHelper.CreateInstance(t));

                case "GroupBySumObject`2":
                    var ts = typeof(GroupbySumObjectHandler <,>).MakeGenericType(Info.HandleType.GetGenericArguments());
                    return((IDbObjectHandler)ClassHelper.CreateInstance(ts));

                default:
                    throw new NotSupportedException();
                }
            }
            var gen = new ModelHandlerGenerator(Info);
            var o   = (EmitObjectHandlerBase)ClassHelper.CreateInstance(gen.Generate());

            o.Init(Info);
            return(o);
        }
示例#3
0
            public override Type GetDbObjectHandler(Type sourceType, ObjectInfo oi)
            {
				var gen = new ModelHandlerGenerator (oi);
				return gen.Generate ();
            }