使用类属性进行对象映射

时间:2018-01-24 13:08:01

标签: c# automapper objectmapper

这是班级

public class Student
    {
        public string Name { get; set; }
        public int Id { get; set; }
       public Faculty FacultyName { get; set; }
        public void hw()
        {
            System.Console.WriteLine("hw done by Student");
        }
        class many { }
    }

和另一个

public class class StudentDTO{

    public string Name { get; set; }
    public int Id { get; set; }
   public FacultyDTO FacultyName { get; set; }
}

为此我需要一个mapper方法实现可以任何人帮助请不要使用AUTO MAPPER>

1 个答案:

答案 0 :(得分:0)

如果不使用automapper,您可以创建一个静态类来向类中添加扩展方法,例如:

public static class StudentMapper
{
    public static StudentDTO ToDTO(this Student student)
    {
        return new StudentDTO
        {
            Id = student.Id,
            Name = student.Name,
            FacultyName = student.FacultyName.ToDTO()
        };
    }

    public static Student ToClass(this StudentDTO studentDTO)
    {
        return new Student
        {
            Id = studentDTO.Id,
            Name = studentDTO.Name,
            FacultyName = studentDTO.FacultyName.ToClass()
        };
    }
}

你需要为每个班级和dto做同样的事情。

最后,一个用法示例:

StudentDTO studentDTO;
Student student = studentDTO.ToClass();

Student student;
StudentDTO studentDTO = student.ToDTO();