企业如何应用网站的,58同城做网站被骗,手机网站设计公司只选亿企邦,网上怎么做外贸简介Mapster是一个快#xff0c;小巧#xff0c;功能强大的对象映射.Net框架例子我有两个Model类且他们的属性一致#xff0c;我们将 SourceObjectTest赋值给DestObjectTest该怎么做#xff1f;SourceObjectTest sourceObject new SourceObjectTest();
sourceObject.Name … 简介Mapster是一个快小巧功能强大的对象映射.Net框架例子我有两个Model类且他们的属性一致我们将 SourceObjectTest赋值给DestObjectTest该怎么做SourceObjectTest sourceObject new SourceObjectTest();
sourceObject.Name 张三;
sourceObject.Age new Listint { 20, 13, 26 };
sourceObject.Address XX省XX市XX县;
sourceObject.Sex 男;常规做法public void Routine(SourceObjectTest sourceObject)
{
DestObjectTest destObject new DestObjectTest();destObject.Name sourceObject.Name;
destObject.Sex sourceObject.Sex;
destObject.Address sourceObject.Address;
destObject.Age sourceObject.Age;
}这种类型的代码写起来相当枯燥乏味且累那么我们可不可以用第三方的库来解决这种问题呢,那肯定是可以的像AutoMapper和Mapster就是解决这种问题的而我为什么选择Mapster主要还是Mapster性能更好安装Mapster包使用Mapster基本映射之映射到新对象public void BasicMappingNewObject(SourceObjectTest sourceObject){DestObjectTest destObject sourceObject.AdaptDestObjectTest();}基本映射之映射到现有对象public void BasicMappingExistObject(SourceObjectTest sourceObject){DestObjectTest destObject new DestObjectTest();destObject.Name 李四;destObject.Age new Listint { 20 };destObject.Address 中国XX省XX市XX县;destObject.Sex 女; destObject sourceObject.Adapt(destObject);}自定义映射当我们的映射对象的属性与源对象的属性不一致时我们就可以使用eg:SourceObjectTest的name属性和DifferentDestObjectTest的UserName是一个意思只是创建Model类的时候取得名字不一样这时候基本映射映射不了UserName字段那我们就要使用自定义映射了一:直接在 TypeAdapterConfig 配置对象的映射关系public void BasicMappingExtend(SourceObjectTest sourceObject)
{
var config new TypeAdapterConfig();
config.ForTypeSourceObjectTest, DifferentDestObjectTest().Map(dest dest.UserName, src src.Name).Map(dest dest.Address, src src.Name src.Address);
var mapper new Mapper(config);DifferentDestObjectTest differentDestObjectTest mapper.MapDifferentDestObjectTest(sourceObject);
}二:使用接口的方式public class DifferentDestObjectTestRegister : IRegister{public void Register(TypeAdapterConfig config){config.ForTypeSourceObjectTest, DifferentDestObjectTest().Map(dest dest.UserName, src src.Name).Map(dest dest.Address, src src.Name src.Address);}}public void BasicMappingExtend(SourceObjectTest sourceObject){var config new TypeAdapterConfig();config.Scan(Assembly.GetExecutingAssembly());var mapper new Mapper(config);DifferentDestObjectTest differentDestObjectTest mapper.MapDifferentDestObjectTest(sourceObject);}三:使用映射配置public void MappingConfig(SourceObjectTest sourceObject){TypeAdapterConfigSourceObjectTest, DifferentDestObjectTest.NewConfig().Map(dest dest.UserName,src src.Name);DifferentDestObjectTest differentDestObjectTest TypeAdapter.AdaptSourceObjectTest, DifferentDestObjectTest(sourceObject);}当然还有其它功能可前往官网- 传送门最后大家如果喜欢我的文章还麻烦给个关注并点个赞, 希望net生态圈越来越好