gpt4 book ai didi

.net - 对象的索引器是否可以通过其 TypeDescriptor 以某种方式访问​​?

转载 作者:行者123 更新时间:2023-12-04 15:23:40 27 4
gpt4 key购买 nike

我很难通过 TypeDescriptor 获取有关对象索引器的信息 - 可以肯定的是,我的意思是这样的事情:

class ComponentWithIndexer
{
public string this[int i]
{
get { return "hello"; }
}
}

由于您可以通过自定义 Typedescriptors 来影响 WPF 中的绑定(bind),并且您可以绑定(bind)到 WPF 中的索引器(例如 {Binding [12]),所以我想知道有关索引器的信息是否也可以通过类型描述符获得。
那么,信息隐藏在哪里,如果它不隐藏在那里,针对索引器的 WPF 绑定(bind)如何工作?

最佳答案

简短的回答,不 - 您无法通过 TypeDescriptor 访问索引器

更长的答案 - 为什么你不能 - 在 TypeDescriptor 的内心深处mess-o-classes,有对 GetProperties 的聚合属性的反射调用称呼。里面有这段代码:

for (int i = 0; i < properties.Length; i++)
{
PropertyInfo propInfo = properties[i];
if (propInfo.GetIndexParameters().Length <= 0)
{
MethodInfo getMethod = propInfo.GetGetMethod();
MethodInfo setMethod = propInfo.GetSetMethod();
string name = propInfo.Name;
if (getMethod != null)
{
sourceArray[length++] = new ReflectPropertyDescriptor(type, name, propInfo.PropertyType, propInfo, getMethod, setMethod, null);
}
}
}

重要的部分是检查 0 索引参数 - 如果它有一个索引器,它会跳过它。 :(

关于.net - 对象的索引器是否可以通过其 TypeDescriptor 以某种方式访问​​?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17750878/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com