首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

[分享+升星散分]使用 PropertyInfo反射 让你省写一半的重复代码解决办法

2012-01-13 
[分享+升星散分]使用 PropertyInfo反射 让你省写一半的重复代码上个星期,到了一星。终于到了,自己天天抢分,

[分享+升星散分]使用 PropertyInfo反射 让你省写一半的重复代码
上个星期,到了一星。终于到了,自己天天抢分,无奈技术有限。
抢了将近一年,到了一个小星星。
在坛子里和大家一起进步。真的很开心。
17号 也就是周六 参加了博客园的上海俱乐部活动,围观了老赵。 听到了老赵的演讲, 真的很犀利。
他的总结观点是 :java一直在模仿c# 而且java比c#简单易学。还建议大家不要学java 
我挺认同他的观点。大家可以去他的博客看看。


下面是我刚写的博客,使用 PropertyInfo反射 让你省写一半的重复代码
传送员
欢迎大家拍砖。

本人90年的 现在上海浦东上班 开发不到一年 希望能和大家多多认识,多多交流。

[解决办法]
dddddddddddddddddddddddddddddddddddddddddd
[解决办法]
java一直在模仿c# 而且java比c#简单易学。还建议大家不要学java
[解决办法]
不错,很实际的一个代码!

恭喜升级!
[解决办法]
学习。。。
[解决办法]
我不同意这位老赵同学的话
[解决办法]
dingdingding
[解决办法]

探讨

我不同意这位老赵同学的话

[解决办法]
我不同意这位老赵同学的话,我到觉得恰恰相反
[解决办法]
顶顶顶顶顶顶。。。。。。。。。。
[解决办法]
呵呵,先来支持下楼主升星了。

不过,虽然我没玩过Java。

貌似我以前一直都听别人说,c#抄Java的?
[解决办法]
搞什么语言之争

虽然我没用过java,但这话从老赵嘴里说出来感觉不舒服。


[解决办法]
探讨
引用:
呵呵,先来支持下楼主升星了。

不过,虽然我没玩过Java。

貌似我以前一直都听别人说,c#抄Java的?

我和你一样
没学过java
但是 老赵作为一个MVP 熟悉java 精通c# 的人 肯定比我们看的清楚

[解决办法]
各有各的观点

[解决办法]
这么小。。支持下
[解决办法]
顶~~~~~~~
[解决办法]
都看你升星好几天了....
[解决办法]
帮顶下。。。。。。。。。。。。。。。。。。
[解决办法]
如果船上的水手不具有航海学里关于星象的知识,那他就会把一个很有才能的舵手看成是只会抬头看星星的傻子。
[解决办法]
说出了很多人的心声
[解决办法]
编程语言是在发展的。

C# 的出现 就是因为 Java 的关系, ms 觉得 Java 是自己产品最大的竞争对手

还推出了 J# 来吸引部分 java 开发者。

C# 的设计 很多都是吸收 java 的 ,在 C# 2.0 之前 一直在模仿 java

但现在 java 已经没落了 , 作为 java Fans 我很无奈 ,但这是不争的事实

引用 James Gosling 的话,So long, old friend...

现在我很少关注 java , 是否java 现在 在模仿 C# ,我没有发言权

[解决办法]
无非是工具,我对语言没有偏见。只不过是C#接触的多点儿。
[解决办法]
老赵要我来接分
[解决办法]
看看 学习下
[解决办法]
恭喜


[解决办法]


恭喜升星!!!!
[解决办法]

探讨
java一直在模仿c# 而且java比c#简单易学。还建议大家不要学java

[解决办法]
不懂java,没有发言权...
[解决办法]
啥也不说了 接分吧。。。
[解决办法]
恭喜,接分
[解决办法]
先恭喜哈了··
[解决办法]
我的最终目的不是为了“让Java程序员使用C#”,而是“让Java程序员使用Scala”
-------------------------------------
老赵
[解决办法]
JF 不过个人不赞同去比较语言的好坏
适合自己的就是最好的
[解决办法]
gx

[解决办法]
恭喜,接分!
[解决办法]
探讨
java一直在模仿c# 而且java比c#简单易学。还建议大家不要学java

[解决办法]
不要搞什么语言歧视
[解决办法]
接分了!~~~~~~~~~~~~~~~~~
[解决办法]

[解决办法]
JF 顶下
[解决办法]
探讨
搞什么语言之争

虽然我没用过java,但这话从老赵嘴里说出来感觉不舒服。

[解决办法]

[解决办法]
好 好 好
[解决办法]
恭喜恭喜接分接分
[解决办法]
各有各的好处
[解决办法]
类似楼主的那种代码我也用过,后来发现问题超多。

Model 的属性顺序,和数据库字段顺序要一致。

不然轻则赋值到别的地方,重则直接报类型转换的错误。
[解决办法]
呜呜,什么时候也能去围观一下老赵……
[解决办法]
恭喜!接分
[解决办法]
GX!
[解决办法]
gx 升级
[解决办法]
挺好的,借鉴了。。
[解决办法]
升星好快啊,才一年,我5年还没看见星星
[解决办法]
学习
[解决办法]
我也感觉是c#抄java的
[解决办法]
为什么不觉得是相互学习呢?人与人之间可以相互学习,那么同样开发语言之间就不能相互学习了?
取长补短,众多的得益者之中不是包括我们开发者么?


[解决办法]
恭喜下楼主~
[解决办法]
恭喜

但是感觉这个代码不是很实用,不过还是谢谢lz分享
[解决办法]
呵呵,如果自己写orm,我强烈建议将field与数据库对应起来,而不要对应property。linq to sql的做法我认为是错误的。我们的数据库就应该仅仅忠实记录property背后的原始信息,而不是记录property表面的信息。

也就是说,如果楼主的代码思路修改之后,可以这样写成一个扩展方法:

C# code
public static IEnumerable<T> GetObjects<T>(this DbDataReader rd) where T : new(){    var fs = (from fd in typeof(T).GetFields()                let desc = new { field = fd, index = rd.GetOrdinal(fd.Name) }                where desc.index >= 0                select desc)            .ToList();    foreach (var x in rd)    {        var obj = new T();        fs.ForEach(d => { d.field.SetValue(obj, rd[d.index]); });        yield return obj;    }}
[解决办法]
恭喜下楼主~
[解决办法]
这里,我们通过扩展方法,为任意DbDataReader都增加了一个GetObjects方法,返回任意指定类型的强类型的对象集合。
[解决办法]
探讨
上个星期,到了一星。终于到了,自己天天抢分,无奈技术有限。
抢了将近一年,到了一个小星星。
在坛子里和大家一起进步。真的很开心。
17号 也就是周六 参加了博客园的上海俱乐部活动,围观了老赵。 听到了老赵的演讲, 真的很犀利。
他的总结观点是 :java一直在模仿c# 而且java比c#简单易学。还建议大家不要学java
我挺认同他的观点。大家可以去他的博客看看。


下面是我刚……

[解决办法]
学习了
[解决办法]

[解决办法]
学习了
[解决办法]
"而且java比c#简单易学"不明白
[解决办法]
"而且java比c#简单易学"不明白
[解决办法]
探讨
呵呵,如果自己写orm,我强烈建议将field与数据库对应起来,而不要对应property。linq to sql的做法我认为是错误的。我们的数据库就应该仅仅忠实记录property背后的原始信息,而不是记录property表面的信息。

也就是说,如果楼主的代码思路修改之后,可以这样写成一个扩展方法:

C# code
public static IEnumerable<T> GetO……

[解决办法]
貌似 是先出java语言的吧! 别人口才好把你说得一愣一愣的. sun公司貌似NB些
[解决办法]

[解决办法]
来接分
[解决办法]
好小啊,恭喜
[解决办法]
语言是相通的,各有各的优点,主要是看自己喜欢那种!
[解决办法]
是先有的Hibernate还是先有的NHibernate 哈哈
[解决办法]
为什么要用properties 的索引,我认为直接使用propertie.Name更好。不必担心因为增加删除字段而引起索引的变化
[解决办法]
探讨
java一直在模仿c# 而且java比c#简单易学。还建议大家不要学java

[解决办法]
纯接分加路过!

签名:

------解决方案--------------------


探讨
引用:
引用:
呵呵,先来支持下楼主升星了。

不过,虽然我没玩过Java。

貌似我以前一直都听别人说,c#抄Java的?

我和你一样
没学过java
但是 老赵作为一个MVP 熟悉java 精通c# 的人 肯定比我们看的清楚


不要迷信MVP

[解决办法]
gxgx

热点排行