如何使用 Mapster 映射继承 class
How to map inherited class using Mapster
我想使用以下语句在两个 类 之间进行映射:
var directoryDataModel = new DirectoryDM()
{
Title = "School Directory",
Persons = new List<PersonDM>()
{
new TeacherDM() { Name = "Johnson", Department = "Math" },
new StudentDM() { Name = "Billy", Classes = new List<string>() { "Math", "Physics" } }
}
};
var directoryViewModel = directoryDataModel.Adapt<DirectoryVM>();
var directoryDataModel2 = directoryViewModel.Adapt<DirectoryDM>();
我需要做什么才能处理派生的 类 在 Persons 列表中的映射?
TeacherVM <=> TeacherDM 和 StudentVM <=> StudentDM
数据模型:
public class DirectoryDM
{
public string Title;
public List<PersonDM> Persons;
}
public class PersonDM
{
public string Name;
}
public class TeacherDM : PersonDM
{
public string Department;
}
public class StudentDM : PersonDM
{
public List<string> Classes;
}
查看模型:
public class DirectoryVM
{
public string Title;
public List<PersonVM> Persons;
public bool AdditionalStuff;
}
public class PersonVM
{
public string Name;
public bool AdditionalStuff;
}
public class TeacherVM : PersonVM
{
public string Department;
public bool AdditionalStuff2;
}
public class StudentVM : PersonVM
{
public List<string> Classes;
public bool AdditionalStuff2;
}
我不确定是不是每次都必须这样做......或者只做一次......但这里是如何组织这个模型的"configs"。
TypeAdapterConfig<PersonDM, PersonVM>.NewConfig()
.Include<TeacherDM, TeacherVM>()
.Include<StudentDM, StudenVM>();
var viewModel = dataModel.Adapt<FlexSortVM>();
和
TypeAdapterConfig<PersonVM, PersonDM>.NewConfig()
.Include<TeacherVM, TeacherDM>()
.Include<StudentVM, StudenDM>();
var dataModel = viewModel.Adapt<FlexSortDM>();
我想使用以下语句在两个 类 之间进行映射:
var directoryDataModel = new DirectoryDM()
{
Title = "School Directory",
Persons = new List<PersonDM>()
{
new TeacherDM() { Name = "Johnson", Department = "Math" },
new StudentDM() { Name = "Billy", Classes = new List<string>() { "Math", "Physics" } }
}
};
var directoryViewModel = directoryDataModel.Adapt<DirectoryVM>();
var directoryDataModel2 = directoryViewModel.Adapt<DirectoryDM>();
我需要做什么才能处理派生的 类 在 Persons 列表中的映射?
TeacherVM <=> TeacherDM 和 StudentVM <=> StudentDM
数据模型:
public class DirectoryDM
{
public string Title;
public List<PersonDM> Persons;
}
public class PersonDM
{
public string Name;
}
public class TeacherDM : PersonDM
{
public string Department;
}
public class StudentDM : PersonDM
{
public List<string> Classes;
}
查看模型:
public class DirectoryVM
{
public string Title;
public List<PersonVM> Persons;
public bool AdditionalStuff;
}
public class PersonVM
{
public string Name;
public bool AdditionalStuff;
}
public class TeacherVM : PersonVM
{
public string Department;
public bool AdditionalStuff2;
}
public class StudentVM : PersonVM
{
public List<string> Classes;
public bool AdditionalStuff2;
}
我不确定是不是每次都必须这样做......或者只做一次......但这里是如何组织这个模型的"configs"。
TypeAdapterConfig<PersonDM, PersonVM>.NewConfig()
.Include<TeacherDM, TeacherVM>()
.Include<StudentDM, StudenVM>();
var viewModel = dataModel.Adapt<FlexSortVM>();
和
TypeAdapterConfig<PersonVM, PersonDM>.NewConfig()
.Include<TeacherVM, TeacherDM>()
.Include<StudentVM, StudenDM>();
var dataModel = viewModel.Adapt<FlexSortDM>();