我有一个要求,我需要一种“类型安全”的方式来访问属性名称,而无需实际实例化一个对象来获取该属性。举个例子,考虑一个将 IMyObject 列表和表示属性名称(IMyObject 中存在的属性)的字符串作为参数的方法。
方法实现将获取列表并使用传递的属性名称访问列表中的所有对象......出于某种原因,我们不会详述!
现在,我知道您可以使用实例化对象来执行此操作,例如...
Dim x as MyObject = nothing
Dim prop As PropertyInfo = PropHelper.GetProperty(Of MyObject)(Function() x.MyProperty)
我的辅助方法使用反射将属性名称作为字符串获取 - 在网络上有很多这样的例子!
但我不想创建这个毫无意义的对象,我只想做一些类似 MyObject.MyProperty 的事情!反射允许您在不声明该类型的对象的情况下迭代类型属性和方法......但我想访问特定属性并检索其名称的字符串版本,而无需迭代并且不声明该类型的对象!
这里的要点是,虽然我试图将属性名称作为字符串获取......这是在运行时完成的......在编译时,我希望这是类型安全的,所以如果有人更改了属性名称,编译会中断。
任何人都可以帮助完成这个任务!?!