asp.net-mvc-3 – MVC 3:AutoMapper和项目/解决方案结构
发布时间:2020-12-16 09:49:07 所属栏目:asp.Net 来源:网络整理
导读:我刚开始在我的MVC 3项目中使用AutoMapper,我想知道人们在使用它时如何构建他们的项目.我创建了一个MapManager,它只有一个SetupMaps方法,我在global.asax中调用它来创建初始地图配置.我还需要为我的一个映射使用ValueResolver.对我来说,在几个不同的地方需要
我刚开始在我的MVC 3项目中使用AutoMapper,我想知道人们在使用它时如何构建他们的项目.我创建了一个MapManager,它只有一个SetupMaps方法,我在global.asax中调用它来创建初始地图配置.我还需要为我的一个映射使用ValueResolver.对我来说,在几个不同的地方需要这个特殊的ValueResolver,它只是从Article.GenerateSlug返回一个值.
所以我的问题是: >如何管理所有地图的初始创建(Mapper.CreateMap)? 谢谢你的帮助. 解决方法
我不会将问题2作为其真正的个人偏好,但对于1我通常使用一个或多个AutoMapper.Profile来保存我的所有Mapper.CreateMap以用于特定目的(domaintoviewmodel等).
public class ViewModelToDomainAutomapperProfile : Profile { public override string ProfileName { get { return "ViewModelToDomain"; } } protected override void Configure() { CreateMap<TripRegistrationViewModel,TripRegistration>() .ForMember(x=>x.PingAttempts,y => y.Ignore()) .ForMember(x=>x.PingResponses,y => y.Ignore()); } } 然后我创建一个配置Mapper的引导程序(IInitializer),添加我的所有配置文件. public class AutoMapperInitializer : IInitializer { public void Execute() { Mapper.Initialize(x => { x.AddProfile<DomainToViewModelAutomapperProfile>(); x.AddProfile<ViewModelToDomainAutomapperProfile>(); }); } } 然后在我的global.asax中获取IInitializer的所有实例并通过它们循环运行Execute(). foreach (var initializer in ObjectFactory.GetAllInstances<IInitializer>()) { initializer.Execute(); } 这是我的总体战略. 根据要求,这是最后一步的反思实施. var iInitializer = typeof(IInitializer); List<IInitializer> initializers = AppDomain.CurrentDomain.GetAssemblies() .SelectMany(s => s.GetTypes()) .Where(p => iInitializer.IsAssignableFrom(p) && p.IsClass) .Select(x => (IInitializer) Activator.CreateInstance(x)).ToList(); foreach (var initializer in initializers) { initializer.Execute(); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – Visual Studio 2017错误:无法启动程序,在当前状
- asp.net – .Net LoginControls – 用户无法在Firefox中注销
- Asp.NEt邮箱验证修改密码通过邮箱找回密码功能
- entity-framework – IdentityServer 3 Asp.net身份:范围,
- asp.net-mvc – DiggBar如何工作?
- asp.net-core-mvc – 如何在Asp.Net Core中自定义Developer
- asp.net-mvc-3 – 在Razor View模型中添加一个类到Ajax.Beg
- asp.net-mvc – 使用带有IEnumerable的Html.EditorFor
- asp.net – 如何使用ValueInjector映射列表
- asp.net-mvc – 托管到服务器时,任务或线程无法工作/运行
推荐文章
站长推荐
- asp.net-mvc – 如何在asp.net mvc 4中实现社交登
- asp.net-mvc – Ninject.MVC3,将DependencyResol
- asp.net-mvc – MVC组件GUI方法
- ASP.NET解决方案与类库项目
- ASP.NET Core 认证与授权[3]:OAuth & OpenID
- ASP.Net应用程序是否有内存限制?
- .net – 是否必须在自定义实现中覆盖默认的成员资
- asp.net-mvc – Html.Actionlink作为Button效果
- asp.net – 如何将onchange事件附加到CheckBoxLi
- asp.net – 获取当前请求的凭据以便在WebRequest
热点阅读