The short answer is no - you cannot get to indexers via TypeDescriptor
The longer answer — why you can't — deep down in the bowels of TypeDescriptor mess-o-classes, is a reflective call to aggregate properties for calling GetProperties . This code has:
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); } } }
An important part is checking for index parameters 0 - if it has an index, it skips it. :(
source share