Как программно установить порядок столбцов свойств DTO - PullRequest
0 голосов
/ 26 мая 2019

У меня простой класс DTO.Я хотел бы динамически устанавливать порядок столбцов этих свойств dto, когда результаты сохраняются в excel.

Public class Student
{
   public int Id {get;set;}
   public string FirstName {get;set;}
   public string LastName {get;set;}
}

Я знаю, что есть способ использовать атрибут порядка столбцов DataAnnotation для каждого свойства в DTO.Но есть ли способ справиться с этим, используя код для установки порядка столбцов DTO.

Я использую простое веб-приложение и добавил ссылку System.ComponentModel.DataAnnotation.

Если есть обходной путь без использования DataAnnotation для установки порядка столбцов с использованием кода, который будет отличным

1 Ответ

0 голосов
/ 27 мая 2019

Как насчет использования статического массива внутри вашего класса или другого класса, в котором перечислены все столбцы в нужном вам порядке, и при сохранении в Excel вы сначала просматриваете этот массив, чтобы получить столбцы в правильном порядке.

Примерно так:

public class Student
{
    public int Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }

    public List<string> OrderedProperties => new List<string> { "LastName", "FirstName", "Id" };
}

public class DataAccess
{
    public void SaveStudentToExcel()
    {
        var student = new Student(); // instead of new this should be your object filled with real data.
        foreach (var propName in student.OrderedProperties)
        {
            var val = student.GetType().GetProperty(propName).GetValue(student, null);

            // new cell in excel => with val and propName then save
        }
    }
}
...