博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
通过反射初始化Class值【原】
阅读量:5891 次
发布时间:2019-06-19

本文共 4645 字,大约阅读时间需要 15 分钟。

public class TbRoute        {            private string _routeid;            private string _routenm;            private bool _flag;            private int _count;            public string RouteId            {                set { _routeid = value; }                get { return _routeid; }            }            public string RouteNM            {                set { _routenm = value; }                get { return _routenm; }            }            public bool Flag            {                set { _flag = value; }                get { return _flag; }            }            public int Count            {                set { _count = value; }                get { return _count; }            }        }        private static object InitClassValue(object obj, List
listValues) { Type t = obj.GetType();//获得该类的Type //再用Type.GetProperties获得PropertyInfo[],然后就可以用foreach 遍历了 foreach (PropertyInfo pi in t.GetProperties()) { for (int i = 0; i < listValues.Count; i++) { string[] values = (string[])listValues[i]; if (values.Length.Equals(2)) { if (values[0].ToLower().Equals(pi.Name.ToLower())) { object value = GetDbTypeValue(pi.PropertyType, values[1]); pi.SetValue(obj, value, null); break; } } } } return obj; } private static object GetDbTypeValue(Type type, object obj) { object value = ""; if (type.Equals(typeof(int)) || type.IsEnum) try { value = Int32.Parse(obj.ToString()); } catch { value = 0; } else if (type.Equals(typeof(long))) try { value = Int32.Parse(obj.ToString()); } catch { value = 0; } else if (type.Equals(typeof(double)) || type.Equals(typeof(Double)) || type.Equals(typeof(Single))) try { value = decimal.Parse(obj.ToString()); } catch { value = 0.0; } else if (type.Equals(typeof(DateTime))) try { value = DateTime.Parse(obj.ToString()); } catch { value = DateTime.MinValue; } else if (type.Equals(typeof(bool))) try { value = Boolean.Parse(obj.ToString()); } catch { value = false; } else if (type.Equals(typeof(string))) try { value = obj.ToString(); } catch { value = ""; } else if (type.Equals(typeof(decimal))) try { value = decimal.Parse(obj.ToString()); } catch { value = 0.0; } else if (type.Equals(typeof(byte[]))) try { value = (byte[])obj; } catch { value= new byte[]{}; } else if (type.Equals(typeof(Guid))) try { value = obj.ToString(); } catch { value = ""; } return value; } private void FormTest_Load(object sender, EventArgs e) { List
listValues = new List
(); listValues.Add(new string[] { "RouteId", "10000" }); listValues.Add(new string[] { "RouteNM", "xsm" }); string ss = "[[\"RouteId\",\"10000\"],[\"RouteNM\",\"xsm\"],[\"Flag\",\"true\"],[\"Count\",\"1\"]]"; listValues = JsonHelp.JSONToObject
>(ss); TbRoute t = new TbRoute(); t = (TbRoute)InitClassValue(t, listValues); }

 

转载于:https://www.cnblogs.com/xsmhero/archive/2013/04/02/2995593.html

你可能感兴趣的文章
【Oracle】两个表Join关联更新
查看>>
ActiveX控件的安全初始化和脚本操作 和 数字签名SIGN
查看>>
Eclipse console文本换行
查看>>
微信支付开发(11) Native支付
查看>>
HDFS dfsclient写文件过程 源码分析
查看>>
【设计模式】—— 代理模式Proxy
查看>>
ejabberd
查看>>
博客园博客自动生成三级目录(generate three levels content using JS in cnblogs)
查看>>
联通高管频频出走:通信业已成鸡肋?
查看>>
关于多线程的那些事
查看>>
js 将json字符串转换为json对象的方法解析
查看>>
1. Two Sum
查看>>
让浏览器不再显示 https 页面中的 http 请求警报
查看>>
hdu4893Wow! Such Sequence! (线段树)
查看>>
Android 最简单的SD卡文件遍历程序
查看>>
JavaScript获取DOM元素位置和尺寸大小
查看>>
1065: 贝贝的加密工作
查看>>
lintcode 单词接龙II
查看>>
Material Design学习之 ProgreesBar
查看>>
WEB版一次选择多个文件进行批量上传(WebUploader)的解决方案
查看>>