private static DbDriver CreateDbDriver(DbDialect dialectClass, string name, string driverClassName, string connectionString, string dbProviderFactoryName, string act, string auto) { var autoScheme = AutoScheme.None; if (auto.IsNullOrEmpty()) { if (!string.IsNullOrEmpty(act)) { if (bool.Parse(act)) { autoScheme = AutoScheme.CreateTable; } } } else { autoScheme = (AutoScheme)Enum.Parse(typeof(AutoScheme), auto); } CheckProperty(dialectClass, connectionString); if (driverClassName == "") { return(dialectClass.CreateDbDriver(name, connectionString, dbProviderFactoryName, autoScheme)); } return((DbDriver)ClassHelper.CreateInstance(driverClassName, dialectClass, name, connectionString, dbProviderFactoryName, autoScheme)); }
public override object Deserialize(IDictionary <string, object> dictionary, Type type, JavaScriptSerializer serializer) { IList list = ClassHelper.CreateListInstance(type); foreach (object obj in dictionary.Values) { var items = obj as IEnumerable <KeyValuePair <string, object> >; if (items == null || !items.Any()) { continue; } object model = ClassHelper.CreateInstance(type); foreach (var item in items) { KeyValuePair <string, object> detail = (KeyValuePair <string, object>)item; string name = detail.Key; PropertyInfo propertyInfo = type.GetProperty(name); if (string.IsNullOrEmpty(name) || propertyInfo == null) { continue; } //ClassHelper.SetPropertyValue(model, name, detail.Value); propertyInfo.SetValue(model, SafeConverter.SafeToObject(propertyInfo.PropertyType, detail.Value), null); } list.Add(model); } return(list); }
public DataSet ExecuteDataset(SqlStatement sql, Type returnType) { var ds = (DataSet)ClassHelper.CreateInstance(returnType); ExecuteDataset(sql, ds); return(ds); }
private static DbDriver GetDriver(string prefix) { var name = prefix; if (prefix != "") { prefix += "."; } string pd = prefix + "DataBase"; string ds = ConfigHelper.GSettings.GetValue(pd); if (ds == "") { throw new SettingException("DataBase must be set as a valid value. Current get is : " + pd); } string[] ss = StringHelper.Split(ds, ':', 2); ds = ss[0].Trim(); if (ds[0] == '@') { ds = "G.Data.Dialect." + ds.Substring(1) + ", G.Data"; } var d = (DbDialect)ClassHelper.CreateInstance(ds); string cs = d.GetConnectionString(ss[1].Trim()); string pf = ConfigHelper.GSettings.GetValue(prefix + "DbProviderFactory"); string dcn = ConfigHelper.GSettings.GetValue(prefix + "DbDriver"); string act = ConfigHelper.GSettings.GetValue(prefix + "AutoCreateTable"); string auto = ConfigHelper.GSettings.GetValue(prefix + "AutoScheme"); return(CreateDbDriver(d, name, dcn, cs, pf, act, auto)); }
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"); }
public virtual IDbObjectHandler CreateDbObjectHandler(Type srcType, ObjectInfo oi) { Type t = GetDbObjectHandler(srcType, oi); var o = (EmitObjectHandlerBase)ClassHelper.CreateInstance(t); o.Init(oi); return(o); }
private static object GetValue(Dictionary <string, string> map, string key, Type objType) { string s = GetString(map, key); if (string.IsNullOrEmpty(s)) { return(ClassHelper.CreateInstance(objType)); } return(ClassHelper.CreateInstance(s)); }
public object GetValue(string key, Type objType) { string s = GetString(key); if (string.IsNullOrEmpty(s)) { return(ClassHelper.CreateInstance(objType)); } return(ClassHelper.CreateInstance(s)); }
static NameMapper() { if (CoreSettings.NameMapper.StartsWith("@")) { Instance = SimpleContainer.Get <NameMapper>(CoreSettings.NameMapper.Substring(1)); } else { Instance = (NameMapper)ClassHelper.CreateInstance(CoreSettings.NameMapper); } }
public static void CopyAll(Assembly assembly) { foreach (Type t in assembly.GetTypes()) { if (t.BaseType == typeof(BulkCopyProcessor)) { var o = (BulkCopyProcessor)ClassHelper.CreateInstance(t); o.Run(); } } }
static NameMapper() { var nameMapper = ConfigReader.Config.Database.NameMapper; if (nameMapper.StartsWith("@")) { Instance = SimpleContainer.Get <NameMapper>(nameMapper.Substring(1)); } else { Instance = (NameMapper)ClassHelper.CreateInstance(nameMapper); } }
public FieldAdapter(FieldInfo info) { this.Info = info; if (info.IsPublic) { var t = MemberHandlerGenerator.Generate(info.DeclaringType, info); Handler = (IMemberHandler)ClassHelper.CreateInstance(t); } else { Handler = new FieldHandler(info); } }
private static DbDriver CreateDbDriver(DbDialect dialectClass, string name, string driverClassName, string connectionString, string dbProviderFactoryName, string das) { var autoScheme = das.ToEnum <AutoScheme>(); CheckProperty(dialectClass, connectionString); if (driverClassName == "") { return(dialectClass.CreateDbDriver(name, connectionString, dbProviderFactoryName, autoScheme)); } return((DbDriver)ClassHelper.CreateInstance(driverClassName, dialectClass, name, connectionString, dbProviderFactoryName, autoScheme)); }
public PropertyAdapter(PropertyInfo info) { this.Info = info; var method = info.GetGetMethod(); if (method != null && method.IsPublic) { var t = MemberHandlerGenerator.Generate(info.DeclaringType, info); Handler = (IMemberHandler)ClassHelper.CreateInstance(t); } else { Handler = new PropertyHandler(info); } }
protected DynamicObjectReference(SerializationInfo info, StreamingContext context) { var t = (Type)info.GetValue("#", typeof(Type)); object o = ClassHelper.CreateInstance(t); foreach (FieldInfo fi in t.GetFields(ClassHelper.InstanceFlag)) { object v = info.GetValue(fi.Name, fi.FieldType); fi.SetValue(o, v); } if (o is DbObjectSmartUpdate) // should be DbObjectModel<T, TKey> { var pi = t.GetProperty("Id"); pi.SetValue(o, info.GetValue("Id", pi.PropertyType), new object[] {}); } RealObj = o; }
public static ILogRecorder GetLogRecorder(string name) { lock (Jar) { if (Jar.ContainsKey(name)) { return(Jar[name]); } var ilc = name.StartsWith("@") ? SimpleContainer.Get <ILogRecorder>(name.Substring(1)) : (ILogRecorder)ClassHelper.CreateInstance(name); if (ilc == null) { throw new SettingException(); } Jar[name] = ilc; return(ilc); } }
public FieldAdapter(FieldInfo info) { this.Info = info; var attr = info.GetAttribute <InstanceHandlerAttribute>(false); if (attr != null) { var h = ClassHelper.CreateInstance(attr.Type); if (h is IMemberHandler) { Handler = (IMemberHandler)h; } } if (Handler == null) { Handler = new FieldHandler(info); } }
public override System.Collections.IEnumerable GetDesignTimeData(int minimumRows, out bool isSampleData) { isSampleData = true; var list = new List <object>(); for (int i = 0; i < minimumRows; i++) { object obj = ClassHelper.CreateInstance(_info.HandleType); foreach (MemberHandler mh in _info.SimpleMembers) { object value = GetSampleValue(mh.MemberType, mh.Is.AllowNull, i); mh.SetValue(obj, value); } list.Add(obj); } return(list); }
private DbFactory CreateDbProviderFactory(string dbProviderFactoryName) { if (dbProviderFactoryName != "") { string[] ss = StringHelper.Split(dbProviderFactoryName, ':', 2); string fn = ss[0].Trim(); string addon = ss[1].Trim(); if (fn[0] == '@') { fn = string.Format("G.Data.Driver.{0}, G.Data", fn.Substring(1)); } object f = ClassHelper.CreateInstance(fn); if (f is SmartDbFactory) { ((SmartDbFactory)f).Init(addon); return((SmartDbFactory)f); } return(new DbFactory((DbProviderFactory)f)); } return(new DbFactory(GetDefaultProviderFactory())); }
private static DbDriver GetDriver(string name) { var ctx = ConfigReader.Config.Database.Context[name]; if (ctx.DataBase == "") { throw new SettingException("DataBase must be set as a valid value. Current get is : " + ctx.DataBase); } string[] ss = StringHelper.Split(ctx.DataBase, ':', 2); var ds = ss[0].Trim(); if (ds[0] == '@') { ds = "Leafing.Data.Dialect." + ds.Substring(1) + ", Leafing.Data"; } var d = (DbDialect)ClassHelper.CreateInstance(ds); var scs = coder.Decode(ss[1].Trim()); string cs = d.GetConnectionString(scs); string pf = ctx.ProviderFactory; return(CreateDbDriver(d, name, ctx.Driver, cs, ctx.ProviderFactory, ctx.AutoScheme)); }
protected virtual object ProcessOtherType(string name, Type type) { var obj = ClassHelper.CreateInstance(type); foreach (var info in type.GetFields(BindingFlags.Instance | BindingFlags.Public)) { var value = HttpContextHandler.Instance[info.Name]; if (!value.IsNullOrEmpty()) { var av = ClassHelper.ChangeType(value, info.FieldType); info.SetValue(obj, av); } } foreach (var info in type.GetProperties()) { var value = HttpContextHandler.Instance[info.Name]; if (!value.IsNullOrEmpty()) { var av = ClassHelper.ChangeType(value, info.PropertyType); info.SetValue(obj, av, null); } } return(obj); }
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 static ISymbolWriterProvider GetSymbolWriterProvider() { return((ISymbolWriterProvider)ClassHelper.CreateInstance(SymbolWriterProvider)); }
public static void Main() { //演示一:动态生成类。 #region 演示一:动态生成类。 //生成一个类t。 Type t = ClassHelper.BuildType("MyClass"); #endregion //演示二:动态添加属性到类。 #region 演示二:动态添加属性到类。 //先定义两个属性。 List <ClassHelper.CustPropertyInfo> lcpi = new List <ClassHelper.CustPropertyInfo>(); ClassHelper.CustPropertyInfo cpi; cpi = new ClassHelper.CustPropertyInfo("System.String", "S1"); lcpi.Add(cpi); cpi = new ClassHelper.CustPropertyInfo("System.String", "S2"); lcpi.Add(cpi); //再加入上面定义的两个属性到我们生成的类t。 t = ClassHelper.AddProperty(t, lcpi); //把它显示出来。 DispProperty(t); //再定义两个属性。 lcpi.Clear(); cpi = new ClassHelper.CustPropertyInfo("System.Int32", "I1"); lcpi.Add(cpi); cpi = new ClassHelper.CustPropertyInfo("System.Int32", "I2"); lcpi.Add(cpi); //再加入上面定义的两个属性到我们生成的类t。 t = ClassHelper.AddProperty(t, lcpi); //再把它显示出来,看看有没有增加到4个属性。 DispProperty(t); #endregion //演示三:动态从类里删除属性。 #region 演示三:动态从类里删除属性。 //把'S1'属性从类t中删除。 t = ClassHelper.DeleteProperty(t, "S1"); //显示出来,可以看到'S1'不见了。 DispProperty(t); #endregion //演示四:动态获取和设置属性值。 #region 演示四:动态获取和设置属性值。 //先生成一个类t的实例o。 object o = ClassHelper.CreateInstance(t); //给S2,I2属性赋值。 ClassHelper.SetPropertyValue(o, "S2", "abcd"); ClassHelper.SetPropertyValue(o, "I2", 1234); //再把S2,I2的属性值显示出来。 Console.WriteLine("S2 = {0}", ClassHelper.GetPropertyValue(o, "S2")); Console.WriteLine("I2 = {0}", ClassHelper.GetPropertyValue(o, "I2")); #endregion Console.Read(); }