Для этого вам нужно написать и зарегистрировать пользовательский TypeDescriptionProvider
, который использует использование отражения. Однако вы, безусловно, можете сделать это - вы даже можете иметь PropertyDescriptor
экземпляров, которые фактически взаимодействуют с полями (а не со свойствами). Вам также, вероятно, потребуется написать собственную реализацию bespke PropertyDescriptor
, поскольку ReflectPropertyDescriptor
- это internal
(возможно, вы можете использовать отражение для получения этого). В конечном счете, вам придется использовать отражение для реализации , но вы можете выполнить требование, чтобы TypeDescriptor.GetProperties(Type)
возвращало PropertyDescriptor
необходимых вам экземпляров.
Вы можете сделать это и для типов вне вашего контроля. Однако следует подчеркнуть, что ваши намерения необычны.
Если вы использовали перегрузку .GetProperties(instance)
, то вы также можете сделать это, внедрив ICustomTypeDescriptor
, что проще, чем полная TypeDescriptionProvider
.
Пример подключения специализированного провайдера см. HyperDescriptor