sma*_*man 6 c# reflection items methodinfo
现在,我有: targetType.GetMethod("get_Item", BindingFlags.Instance)
有更好的吗?
我更喜欢使用PropertyInfo.GetIndexParameters
:
var indexers = targetType.GetProperties(bindingFlags)
.Where(p => p.GetIndexParameters().Any());
.Select(p => p.GetGetMethod());
Run Code Online (Sandbox Code Playgroud)
现在indexers
是IEnumerable<MethodInfo>
索引器的getter匹配指定的BindingFlags
给定bindingFlags
.
注意代码如何读取targetType
,获取与之匹配的属性bindingFlags
,将那些作为索引器,然后投影到getter.它比使用魔术字符串要神秘得多"get_Item"
,并且可以轻松处理多个索引器.
如果你知道只有一个,你当然可以使用Single
.如果您正在寻找特定的一个,您可以相应地检查结果GetIndexParameters
.
归档时间: |
|
查看次数: |
1539 次 |
最近记录: |