使用source generator自动生成实体dto
使用Visual Studio 2022
public class MyClass
{
public string? Name { get; set; }
public int Age { get; set; }
public List<string> List { get; set; }
}
[Mapper<MyClass>]
public partial class MyClassDto;
public class MyClass
{
public string? Name { get; set; }
public int Age { get; set; }
[Ignore]
public List<string> List { get; set; }
}
public class MyClass
{
public string? Name { get; set; }
public int Age { get; set; }
[MapperAs(nameof(MyClassDto.AsList))]
public List<string> List { get; set; }
}
public class MapperTest
{
[Mapper<MyClass>]
public partial class MyClassDto;
[Fact]
public void Mapper_Test()
{
MyClass myClass = new()
{
Name = "Test",
Age = 12,
address = "china",
List = ["1", "2", "3"]
};
var dto = myClass.AsMyClassDto();
Assert.Equal("Test", dto.Name);
Assert.Equal(12, dto.Age);
Assert.Equal(3, dto.AsList.Count);
}
}
实体需要用partial
关键字修饰为分部类: