C#学习教程:如何在ASP.Netwebapp引用的项目DLL中初始化AutoMapper配置文件dll)挣扎如何使用automapper。请参阅下面我的整体解决方案的结构。WebApp启动,在Global.asaxAppStart中调用AutoMapper.Configure()方法添加映射配置文件。现在我只是添加Services.AutoMapperViewModelProfile。但是我需要以某种方式考虑每个WebStoreAdapter中的配置文件(下例中的BigCommerce和Shopify)。我不想在WebApp中添加对每个WebStoreAdapter的引用,只是为了能够在AutoMapperConfig中添加配置文件。如果我在WebStoreFactory中添加对AutoMapper.Initialize的另一个调用,它会覆盖WebApp中的调用。还有另一种方式让我以其他方式失踪或完全偏离这里吗?WebApp-AutoMapperConfig-AddProfileServices.AutoMapperViewModelProfileServices.dll-AutoMapperViewModelProfileScheduler.dll(使用HangFire执行cron作业以从购物车获取数据。它的UI通过WebApp访问)WebStoreAdapter.dll-WebStoreFactoryBigCommerceAdapter.dllComm-AutoDapperBigifydll-AutoMapperShopifyDTOProfile从Global.asax调用初始化:publicstaticclassAutoMapperConfiguration{publicstaticvoidConfigure(){Mapper.Initialize(am=>{am.AddProfile();});}}配置文件:公共类AutoMapperViewModelProfile:配置文件{publicoverridestringProfileName{get{returnthis.GetType().ToString();}}protectedoverridevoidConfigure(){CreateMap().ForMember(vm=>vm.StatusDescription,opt=>opt.MapFrom(entity=>entity.InventoryContainerStatus.DisplayText)).ForMember(dest=>dest.ContainerDetails,option=>option.Ignore());...}}单程方法是使用反射加载所有配置文件:varassembliesToScane=AppDomain.CurrentDomain.GetAssemblies();varallTypes=assembliesToScan.SelectMany(a=>a.ExportedTypes).ToArray();varprofiles=allTypes.Where(t=>typeof(Profile).GetTypeInfo().IsAssignableFrom(t.GetTypeInfo())).Where(t=>!t.GetTypeInfo().IsAbstract);Mapper.Initialize(cfg=>{foreach(配置文件中的变量配置文件){cfg.AddProfile(配置文件);}});不直接引用任何配置文件,只加载当前AppDomain中的所有配置文件以上是C#学习教程:如何在ASP.Netwebapp引用的项目DLL中初始化AutoMapper配置文件如果共享内容全部为对你有用,需要了解更多的C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
