![]() |
1
21
可以使用反射创建代理:
或创建对设置属性的匿名方法的委托;
edit:对createDelegate()使用了错误的重载,需要使用接受和对象作为目标的重载。固定的。 |
![]() |
2
12
有三种方法可以做到这一点:第一种是使用getgetgetmethod()/getsetmethod()并使用delegate.create delegate创建委托。第二个是lambda(不太适合反射!)[即x=>x.foo]。第三个是via表达式(.net 3.5)。 lambda是最简单的;-p
显示用法:
请注意,如果希望委托指向特定实例,则可以对lambda使用闭包,或者使用接受和实例的CreateDelegate的重载。 |
![]() |
3
3
属性实际上是.NET中方法的包装器,因此使用反射,您应该能够获取委托(设置属性和获取属性),然后执行它们… 见 System.Reflection.PropertyInfo 如果有两种方法可用于获取/设置值,则分别为get getgetmethod和getsetmethod。 所以你可以写:
|
![]() |
Emopusta · 从后端到前端的图像路径不工作 2 年前 |
![]() |
Asdrubal Hernandez · Linq查询特定数组索引出错 2 年前 |
![]() |
Niyazi Babayev · 如何在表达式中动态应用表达式? 2 年前 |
|
Dansih · .Net核心自定义身份验证方案 3 年前 |
![]() |
lolorekkk · 面板插入。NET WinForm 3 年前 |