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); }
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); }
public override Type GetDbObjectHandler(Type sourceType, ObjectInfo oi) { var gen = new ModelHandlerGenerator (oi); return gen.Generate (); }