按属性或字段名读取
调用GetReadFunc方法
Func<Test, int> readFunc = Poco.Default.GetReadFunc<User, int>("Id");
int id = readFunc(user);// 按实际类型读取
Func<Test, object> readFunc = Poco.Default.GetReadFunc<User, object>("Id");
object id = reader(user);调用GetMemberReader方法
IMemberReader<User, string> reader = Poco.Default.GetMemberReader<User, string>("Name");
string name = reader.Read(user);按属性或字段名写入
Action<Test, int> writeAction = Poco.Default.GetWriteAction<User, int>("Id");
int id = 1;
writeAction(user, id);// 按实际类型写入
Action<Test, object> writeAction = Poco.Default.GetWriteAction<User, object>("Id");
string name = "Jxj";
writeAction(user, name);调用GetMemberWriter方法
IMemberWriter<User, string> writer = Poco.Default.GetMemberWriter<User, string>("Name");
writer.Write(user, name);调用Copy方法
var user = new User { Id = 1, Name = "Jxj" };
var dto = new UserDTO();
// 复制属性
Mapper.Default.Copy(user, dto);
// dto.Id = 1, dto.Name = "Jxj"调用GetCopyAction方法
var user = new User { Id = 1, Name = "Jxj" };
var dto = new UserDTO();
Action<User, UserDTO> copyAction = Mapper.Default.GetCopyAction<User, UserDTO>();
// 复制属性
copyAction(user, dto);
// dto.Id = 1, dto.Name = "Jxj"调用GetCopier方法
var user = new User { Id = 1, Name = "Jxj" };
var dto = new UserDTO();
IPocoCopier<User, UserDTO> copier = Mapper.Default.GetCopier<User, UserDTO>();
// 复制属性
copier.Copy(user, dto);
// dto.Id = 1, dto.Name = "Jxj"调用Convert方法
var user = new User { Id = 1, Name = "Jxj" };
// 转化
var dto = Mapper.Default.Convert<User, UserDTO>(user);
// dto.Id = 1, dto.Name = "Jxj"调用GetConvertFunc方法
var user = new User { Id = 1, Name = "Jxj" };
var dto = new UserDTO();
Func<User, UserDTO> convertFunc = Mapper.Default.GetConvertFunc<User, UserDTO>();
// 转化
var dto = convertFunc(user);
// dto.Id = 1, dto.Name = "Jxj"调用GetConverter方法
var user = new User { Id = 1, Name = "Jxj" };
IPocoConverter<User, UserDTO> converter = Mapper.Default.GetConverter<User, UserDTO>();
// 转化
var dto = converter.Convert(user);
// dto.Id = 1, dto.Name = "Jxj"通过容器中默认的IMapper对象或Mapper.Default构造转化器
services.UseConverter();services.UseConverter(PocoEmit.Mapper.Default);注: PocoEmit.Mapper.Default继承IPoco接口
指定IPoco和serviceKey注册
IPoco poco = specialMapper;
services.UseConverter(poco, "special");通过构造函数参数、属性等方式注入
public sealed class Mapper(IPocoConverter<User, UserListDTO> converter)
: Mapper<Request, Response, IEnumerable<User>>
{
// ...
}通过容器中默认的IMapper对象或Mapper.Default构造复制器
services.UseCopier();services.UseCopier(PocoEmit.Mapper.Default);注: PocoEmit.Mapper.Default继承IMapper接口
指定IPoco和serviceKey注册
IPoco poco = specialMapper;
services.UseCopier(poco, "special");通过构造函数参数、属性等方式注入
public sealed class Mapper(IPocoCopier<User, UserListDTO> copier)
: Mapper<Request, Response, IEnumerable<User>>
{
// ...
}