当前位置: 首页 > news >正文

全国旅游大型网站建设糖果网站是李笑来做的吗

全国旅游大型网站建设,糖果网站是李笑来做的吗,我想做百度推广,网站开发注册个体工商在C#编程中#xff0c;对象之间的属性复制和操作是一个常见的需求。为此#xff0c;.NET Framework提供了多种实用工具库#xff0c;如AutoMapper、ValueInjecter和ExpressMapper。这些库通过简化代码#xff0c;提高了开发效率。本文将介绍这些工具库#xff0c;比较它们…在C#编程中对象之间的属性复制和操作是一个常见的需求。为此.NET Framework提供了多种实用工具库如AutoMapper、ValueInjecter和ExpressMapper。这些库通过简化代码提高了开发效率。本文将介绍这些工具库比较它们的特点提供使用示例并总结它们的优缺点帮助开发者选择合适的工具库。 一、适用于属性复制的实用工具库 1、工具库列举 在.NET Framework中有几个常用的工具库可以用于简化对象之间的属性复制和操作。以下是一些常用的库 工具库名称支持的.NET版本安装方式特点AutoMapper.NET Framework 4.x, .NET Core, .NET StandardInstall-Package AutoMapper功能强大社区支持广泛配置灵活ValueInjecter.NET Framework 4.x, .NET Core, .NET StandardInstall-Package Omu.ValueInjecter轻量级简单易用ExpressMapper.NET Framework 4.x, .NET Core, .NET StandardInstall-Package ExpressMapper高效快速代码简洁 2、工具库对比 下面是对这些工具库的详细对比 特性/工具库AutoMapperValueInjecterExpressMapper安装复杂度中等简单简单学习曲线中等低低配置灵活性高低中等性能高中等高社区支持广泛一般一般自定义映射支持支持支持深度克隆支持支持不支持 二、各工具库使用代码示例 1、AutoMapper AutoMapper 是一个功能强大的对象映射库广泛用于企业项目中。下面是一些常用功能的代码示例。 安装 Install-Package AutoMapper使用示例 ① 基本映射 using AutoMapper;public class Source {public string Name { get; set; }public int Age { get; set; } }public class Destination {public string Name { get; set; }public int Age { get; set; } }public class Program {public static void Main(){var config new MapperConfiguration(cfg cfg.CreateMapSource, Destination());var mapper config.CreateMapper();var source new Source { Name Alice, Age 30 };var destination mapper.MapDestination(source);Console.WriteLine($Name: {destination.Name}, Age: {destination.Age});} }② 自定义映射 using AutoMapper;public class Source {public string FirstName { get; set; }public string LastName { get; set; } }public class Destination {public string FullName { get; set; } }public class Program {public static void Main(){var config new MapperConfiguration(cfg {cfg.CreateMapSource, Destination().ForMember(dest dest.FullName, opt opt.MapFrom(src src.FirstName src.LastName));});var mapper config.CreateMapper();var source new Source { FirstName John, LastName Doe };var destination mapper.MapDestination(source);Console.WriteLine($FullName: {destination.FullName});} }2、ValueInjecter ValueInjecter 是一个轻量级的对象映射库适用于简单的属性复制场景。 安装 Install-Package Omu.ValueInjecter使用示例 ① 基本映射 using Omu.ValueInjecter;public class Source {public string Name { get; set; }public int Age { get; set; } }public class Destination {public string Name { get; set; }public int Age { get; set; } }public class Program {public static void Main(){var source new Source { Name Alice, Age 30 };var destination new Destination();destination.InjectFrom(source);Console.WriteLine($Name: {destination.Name}, Age: {destination.Age});} }② 自定义映射 using Omu.ValueInjecter;public class Source {public string FirstName { get; set; }public string LastName { get; set; } }public class Destination {public string FullName { get; set; } }public class CustomInjection : ConventionInjection {protected override bool Match(ConventionInfo c){return c.SourceProp.Name FirstName c.TargetProp.Name FullName;}protected override object SetValue(ConventionInfo c){return ((string)c.SourceProp.Value) ((Source)c.Source).LastName;} }public class Program {public static void Main(){var source new Source { FirstName John, LastName Doe };var destination new Destination();destination.InjectFromCustomInjection(source);Console.WriteLine($FullName: {destination.FullName});} }3、ExpressMapper ExpressMapper 是一个高效的对象映射库适用于需要高性能映射的场景。 安装 Install-Package ExpressMapper使用示例 ① 基本映射 using ExpressMapper;public class Source {public string Name { get; set; }public int Age { get; set; } }public class Destination {public string Name { get; set; }public int Age { get; set; } }public class Program {public static void Main(){Mapper.RegisterSource, Destination();Mapper.Compile();var source new Source { Name Alice, Age 30 };var destination Mapper.MapSource, Destination(source);Console.WriteLine($Name: {destination.Name}, Age: {destination.Age});} }② 自定义映射 using ExpressMapper;public class Source {public string FirstName { get; set; }public string LastName { get; set; } }public class Destination {public string FullName { get; set; } }public class Program {public static void Main(){Mapper.RegisterSource, Destination().Member(dest dest.FullName, src src.FirstName src.LastName);Mapper.Compile();var source new Source { FirstName John, LastName Doe };var destination Mapper.MapSource, Destination(source);Console.WriteLine($FullName: {destination.FullName});} }三、适用于属性复制的工具库优缺点对比 以下是 AutoMapper、ValueInjecter 和 ExpressMapper 的优缺点对比 工具库名称优点缺点AutoMapper功能强大支持复杂的映射场景配置灵活支持自定义映射社区支持广泛文档丰富学习曲线较陡需要时间熟悉配置在一些简单场景中可能显得过于复杂ValueInjecter轻量级使用简单适用于简单的属性复制场景功能相对有限支持复杂映射的能力不强社区支持和文档较少ExpressMapper高效快速性能优异代码简洁易于使用功能相对较少支持的映射场景有限社区支持和文档较少 AutoMapper 是一个功能强大且配置灵活的工具适合处理复杂的映射场景但学习曲线较陡适合需要高级映射功能的项目。ValueInjecter 是一个轻量级、易于使用的工具适合处理简单的属性复制场景但功能有限适合需要简单映射的项目。ExpressMapper 是一个高效快速的工具性能优异适合对性能有较高要求的项目但功能较少适合需要简单高效映射的项目。 四、适用于属性复制的实用工具库总结 在选择适用于属性复制的工具库时需要根据项目的具体需求进行选择。如果需要处理复杂的映射场景推荐使用AutoMapper如果仅需要处理简单的属性复制可以选择ValueInjecter如果对性能有较高要求可以选择ExpressMapper。通过合理选择工具库可以大大简化对象属性复制的代码提高开发效率。
http://www.hkea.cn/news/14350826/

相关文章:

  • 张家港企业网站设计陕西省建设网官网
  • ps切片做网站网站定制开发是什么意思
  • 音乐网站数据库怎么做wordpress 3d线条
  • 网站怎么做seo、上海微网站开发
  • 团购网站开发一台云服务器可以做多少个网站
  • 南昌网站建设过程学ui设计适合什么样的人
  • 宁波做网站公司哪家好东莞网页设计报价
  • 抽奖网站怎么做的用 可以做网站软件吗
  • 银行网站开发网站建设在开封找谁做
  • 一家专门做海报的网站深圳工程造价信息网官网
  • 北京网站建设策划什么叫高端网站定制
  • 网站模板之家免费模板山东春季高考网站建设
  • 网络营销网站平台有哪些抖音怎么推广引流
  • 做百度网站费用多少有经验的佛山网站建设
  • 网站运营推广怎么做网站制作难点
  • 四大门户网站是哪些水贝做网站公司
  • 企业营销网站有哪些太白 网站建设
  • 沧州网站建设推广wordpress nginx 302
  • 宝山北京网站建设海底捞口碑营销案例
  • 做网站建设价格dede 网站地图 模块
  • 昆明有哪些帮忙做网站的公司移动互联网的应用论文
  • 长沙电子商务公司网站制作贵州中小型营销型网站建设公司
  • qq刷赞网站怎么做公司如何建站
  • 公司网站界面设计建一个区域网站需要多少资金
  • 上海尚海整装官方网站百度搜索量怎么查
  • 黄埔做网站的公网站建设模板免费下载
  • 鲜花店的网站建设网站建设分前端和后台吗
  • 企业网站哪家公司好网站怎么做电子合同
  • 做sgs认证的公司网站番禺高端网站制作
  • 有什么平台可以做网站网站搜不出来怎么办