使用反射将数据读取器转换为列表的最快方法谁能建议我为此实施反射的最佳方法?我想要最快的方法?我假设您想做这样的事情:Listlist=LoadFromDataReader(dataReader);with:classMyClass{[DataField("FirstName")]publicstringFirstName{get;放;}[DataField("LastName")]publicstringLastName{get;放;我是这样做的:使用Type.GetProperties和PropertyInfo.GetCustomAttribute将字段名称映射到PropertyInfo对象中在每条记录的每个字段上调用??PropertyInfo.SetValue您可以缓存步骤(1),因为字段/属性映射确实在应用程序的生命周期内不会改变。如果性能是一个问题(即如果步骤(2)最终成为瓶颈),那么您必须避免使用反射并生成代码来直接设置属性。一些替代改进:http://blogs.msdn.com/meek/archive/2008/04/25/using-linq-expressions-to-generate-dynamic-methods.aspx这就是我认为你正在寻找的。这真的取决于你在做什么。我实现了一个对象/接口过程,我在其中创建包含返回数据的信息对象。然后我使用接口IFillable或类似的东西将DR传递给对象,然后对象从DR中被水合。这样我就不需要反射,性能也很好。然后,我为Fill和FillCollection提供了一些通用的辅助方法。我的想法基于DotNetNuke框架的CBO对象内部的某些东西。它还实现了一个反射方法,性能非常好。以上就是C#学习教程:使用反射将datareader转成list最快的方法。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
