У меня есть такой сценарий, в котором мы используем классы моделей для создания файла Excel, однако из-за новых запросов он требует обработки динамических объектов, включающих атрибуты, которые необходимы для обработки генератором кода файла Excel.
Итак, если у меня есть модель, скажем, Пользователь:
[Sheet]
public class User
{
[Column]
public string FirstName { get; set; }
[Column]
public string LastName { get; set; }
[Column]
public string EmailAddress { get; set; }
}
Поэтому, если пользователь не хочет включать поле EmailAddress
, это следует исключить, когда механизм экспорта пытается сделать model.GetType().GetProperties()
дляобработать имя свойства и его значение в excel.
Я пытался использовать ExpandoObject
, однако он не работает, когда я пытаюсь получить доступ к свойствам через model.GetType().GetProperties()
, даже если я прошел весь PropertyInfo
до значения IDictionary<string, object>
.
Как мне сделать это с помощью динамического?К вашему сведению, пользовательский атрибут - это импорт, который должен быть включен как часть объекта и его свойства, поскольку существует фильтрация, использующая эти атрибуты для дальнейшей обработки класса модели.
Обновление
Этот объект является общим IList
, например, это может быть IList<User>
, так как это экспорт данных в Excel.