Проблема HyperPropertyDescriptor с. net framework 4.5.2 - PullRequest
1 голос
/ 26 марта 2020

я пытаюсь преобразовать список объектов в датируемые и использую решение, приведенное в этом ответе { ссылка }.

Я скачал гиперобъект и перекомпилировал его в 4.5.2 и использовал что в моем приложении. когда я выполняю метод, я получаю пустой набор данных с одним столбцом. При отладке я обнаружил, что строка

PropertyDescriptorCollection properties =
            TypeDescriptor.GetProperties(typeof(T));

дает объект свойств со счетчиком 0.
Я попытался заменить строку на

PropertyDescriptorCollection properties =
            TypeDescriptor.GetProperties(data.First().GetType()); 

, но все равно не повезло.

Может кто-нибудь помочь? спасибо.

1 Ответ

1 голос
/ 27 марта 2020

Из комментариев:

public class RequestData {
    public string d;
    public DataType t;
    public int i;
}

Это поля, а не свойства. Модель PropertyDescriptor ориентирована на свойства, а откровенно публикуемые c поля являются просто анти-шаблоном. Рассмотрите возможность превращения их в свойства. Самое простое, просто добавьте {get;set;} после каждого, и все готово.

public class RequestData {
    public string d {get;set;}
    public DataType t {get;set;}
    public int i {get;set;}
}

Лично я бы переименовал их, чтобы они стали более значимыми, но это не изменит их работу.

...