TinyMapper:能否实现Id属性与ShipmentId属性的跨类映射?
使用TinyMapper实现不同名称属性的映射
当然可以!TinyMapper完全支持这种不同属性名称的映射需求,配置起来也很直观。我给你举个具体的实现例子:
首先,先定义你的两个类:
// 包含Id属性的源类 public class Order { public int Id { get; set; } public string OrderNumber { get; set; } } // 包含ShipmentId属性的目标类 public class Shipment { public int ShipmentId { get; set; } public string TrackingNumber { get; set; } }
接下来,通过TinyMapper的Bind方法配置自定义映射规则,明确指定Id和ShipmentId的对应关系:
// 配置映射规则 TinyMapper.Bind<Order, Shipment>(config => { // 把源类的Id映射到目标类的ShipmentId config.Bind(src => src.Id, dest => dest.ShipmentId); // 如果还有其他属性需要自定义映射,也可以在这里继续添加 });
最后,调用Map方法完成对象映射:
// 创建源对象实例 var order = new Order { Id = 456, OrderNumber = "ORD-001" }; // 执行映射 var shipment = TinyMapper.Map<Shipment>(order); // 此时 shipment.ShipmentId 就等于 456啦
如果后续有更多复杂的映射需求(比如类型转换、忽略某些属性等),TinyMapper也提供了对应的配置选项,灵活度很高。
内容的提问来源于stack exchange,提问作者Prince
相关产品推荐
相关产品推荐

