asp.net-mvc – 自动发现automapper配置
发布时间:2020-12-16 03:58:41 所属栏目:asp.Net 来源:网络整理
导读:在MVC中创建控制器时,您无需为其进行任何其他注册.添加区域也是如此.只要您的global.asax具有AreaRegistration.RegisterAllAreas()调用,就不需要进行其他设置. 使用AutoMapper,我们必须使用某种CreateMap TSource,TDestination来注册映射.呼叫.可以使用静态M
在MVC中创建控制器时,您无需为其进行任何其他注册.添加区域也是如此.只要您的global.asax具有AreaRegistration.RegisterAllAreas()调用,就不需要进行其他设置.
使用AutoMapper,我们必须使用某种CreateMap< TSource,TDestination>来注册映射.呼叫.可以使用静态Mapper.CreateMap显式执行这些操作,或者从AutoMapper.Profile类派生,重写Configure方法,并从那里调用CreateMap. 在我看来,应该能够扫描一个程序集,从类似于MVC扫描的类扩展到从Controller扩展的类.使用这种机制,不应该仅仅通过创建一个派生自Profile的类来创建映射吗?是否存在任何此类库工具,或者是否存在内置于automapper中的内容? 解决方法
我不知道这样的工具是否存在,但写一个应该是非常简单的:
public static class AutoMapperConfiguration { public static void Configure() { Mapper.Initialize(x => GetConfiguration(Mapper.Configuration)); } private static void GetConfiguration(IConfiguration configuration) { var assemblies = AppDomain.CurrentDomain.GetAssemblies(); foreach (var assembly in assemblies) { var profiles = assembly.GetTypes().Where(x => x != typeof(Profile) && typeof(Profile).IsAssignableFrom(x)); foreach (var profile in profiles) { configuration.AddProfile((Profile)Activator.CreateInstance(profile)); } } } } 然后在你的Application_Start中你可以自动装配: AutoMapperConfiguration.Configure(); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – Oracle参数问题中的链接数据库
- asp.net-mvc – 如何从MVC控制器返回Json对象到视图
- asp.net – IIS工作进程使用大量的内存?
- asp.net-mvc – 验证asp.net MVC中的只读输入不显眼的验证
- dotnetcore3.1 WPF 实现多语言
- ASP.NET表单验证第一次不起作用
- asp.net-mvc – 在Webgrid中将布尔值显示为复选框
- asp.net-mvc-4 – 如何将自定义css / js添加到MVC4项目进行
- asp.net-core – 在ASP.NET Core MVC中提供一些静态文件的问
- asp.net-core – 无法加载DLL’api-ms-win-core-registry-l
推荐文章
站长推荐
- kendo-ui – Kendo DropDownList – 在optionLab
- asp-classic – 经典Asp页面中的Url重定向
- ASP.NET MVC路由的无限URL参数
- asp.net-mvc – 是否可以在基于路由的MVC4中使用
- asp.net – 页面生命周期中的哪个位置是母版页的
- asp.net-mvc – Telerik MVC Grid – 可以为null
- asp.net-mvc – 以Razor语法为Telerik MVC Grid定
- asp.net-mvc – ASP.NET MVC Views可以在不同的项
- asp.net-mvc-4 – Kendo UI组合框复位值
- asp.net – Web表单(.aspx)命名约定
热点阅读