1
11
(添加第二个答案,因为它采用了完全不同的方法)
要解决最初的问题,更重要的是需要一个好的API将datareader中的命名值映射到对象上的属性,请考虑
下面是一个有用的片段:
创建对象的PropertyDescriptor的字典。
|
2
16
我喜欢用表达式树来解决这个问题。当您有一个方法要接受“属性委托”时,请使用参数类型
或者,如果你觉得懒惰:
|
3
8
忽略这在您的特定环境中是否有用(我认为您所采用的方法工作得很好),您的问题是“有没有办法将属性转换为委托”。
例如,一旦你掌握了
或者我们可以创建一个
我们可以用一个 static reflection 扩展方法:
它是强类型的,基于属性本身的类型,因此在重构和编译时类型检查时非常健壮。
当然,在您的例子中,您希望能够使用一个可能为null的对象来设置您的属性,因此围绕setter的强类型包装器并不是完整的解决方案—但它确实提供了一些可以传递给您的
|
4
6
|
5
2
值得一提的是,你可以通过一些反射技巧来做到这一点。。 有点像。。。
|
6
0
正如其他人所指出的,静态反射是一种方法。 这些课程是开箱即用的: http://www.codeproject.com/Articles/36262/Getting-Fun-with-Net-Static-Reflection.aspx |
Emopusta · 从后端到前端的图像路径不工作 2 年前 |
Asdrubal Hernandez · Linq查询特定数组索引出错 2 年前 |
Niyazi Babayev · 如何在表达式中动态应用表达式? 2 年前 |
Dansih · .Net核心自定义身份验证方案 2 年前 |
lolorekkk · 面板插入。NET WinForm 2 年前 |