首页 文章 精选 留言 我的

精选列表

搜索[asp],共1555篇文章
优秀的个人博客,低调大师

ASP.NET.Core中使用AutoMapper

首先需要在NuGet中引用AutoMapper的类库 install-package AutoMapper install-package AutoMapper.Extensions.Microsoft.DependencyInjection 然后创建好要进行转换的类 public class User { public int ID { get; set; } public string Name { get; set; } } public class UserDto { public int ID { get; set; } public string Name { get; set; } } 然后再创建一个标志接口IProfile internal interface IProfile { } 接下来创建一个类来继承AutoMapper的Profile类与实现刚才创建的标志接口IProfile,并且在构造函数中配置关系映射 public class MyProfile: Profile,IProfile { public MyProfile() { CreateMap<User, UserDto>(); CreateMap<UserDto, User>(); } } 然后再创建一个类来注册关系映射 public class Mappings { public static void RegisterMappings() { //获取所有IProfile实现类 var allType = Assembly .GetEntryAssembly()//获取默认程序集 .GetReferencedAssemblies()//获取所有引用程序集 .Select(Assembly.Load) .SelectMany(y => y.DefinedTypes) .Where(type => typeof(IProfile).GetTypeInfo().IsAssignableFrom(type.AsType())); foreach (var typeInfo in allType) { var type = typeInfo.AsType(); if (type.Equals(typeof(IProfile))) { //注册映射 Mapper.Initialize(y => { y.AddProfiles(type); // Initialise each Profile classe }); } } } } 从上面代码可以看出使用标志接口来判断注册映射类进行注册映射, 最后只需在Startup类的ConfigureServices方法中添加服务和将Mappings添加到中间件即可使用 public void ConfigureServices(IServiceCollection services) { services.AddAutoMapper(); services.AddMvc(); } public void Configure(IApplicationBuilder app, IHostingEnvironment env) { Mappings.RegisterMappings(); } 然后就可以使用automapper, public class ValuesController : Controller { private IMapper _mapper { get; set; } public ValuesController([FromServices]IMapper mapper) { this._mapper = mapper; } // GET api/values [HttpGet] public UserDto Get() { User user = new User() { ID = 1, Name = "狗娃" }; var dto = Mapper.Map<User, UserDto>(user); return dto; }} 因为core使用DI创建对象,所以只需添加构造函数即可。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册