Tag: #automapper

如何使用AutoMapper注册自定义ObjectMapper

我打算使用AutoMapper的IObjectMapper接口为类型创建我自己的自定义Object Mapper,但是我没有看到任何可以用AutoMapper注册实现的mapper的地方。 谁能告诉我如何注册它。 编辑:有关此内容的更多信息,请按照AutoMapper-Users组中的讨论进行操作

Automapper将小数设置为2位小数

我想使用AutoMapper链接我的两个对象。 它运行良好,但现在我想将我的小数项格式化为全数字到2位小数。 这就是我所拥有的。 我究竟做错了什么? Mapper.CreateMap() .ForMember(x => typeof(decimal), x => x.AddFormatter()); 这是RoundDecimalTwo格式化程序 public class RoundDecimalTwo : IValueFormatter { public string FormatValue(ResolutionContext context) { return Math.Round((decimal)context.SourceValue,2).ToString(); } }

如何在ASP.Net webapp中引用的项目DLL中初始化AutoMapper配置文件

在我的项目类库(dll)中如何使用automapper苦苦挣扎。 请参阅下面我的整体解决方案的结构。 WebApp启动,在Global.asax App Start中,调用AutoMapper.Configure()方法以添加映射配置文件。 现在我只是添加Services.AutoMapperViewModelProfile。 但我需要以某种方式考虑每个WebStoreAdapters中的配置文件(下例中的BigCommerce和Shopify)。 我希望不要在WebApp中添加对每个WebStoreAdapter的引用,只是为了能够在AutoMapperConfig中添加配置文件。 如果我在WebStoreFactory中添加对AutoMapper.Initialize的另一个调用,它将覆盖WebApp中的一个。 还有其他方式,我错过或完全偏离这里以其他方式? WebApp – AutoMapperConfig – AddProfile Services.AutoMapperViewModelProfile Services.dll – AutoMapperViewModelProfile Scheduler.dll (uses HangFire to execute cron jobs to get data from shop carts. Its UI is accessed via the WebApp) WebStoreAdapter.dll -WebStoreFactory BigCommerceAdapter.dll – AutoMapperBigCommerceDTOProfile ShopifyAdapter.dll – AutoMapperShopifyDTOProfile 从Global.asax调用初始化: public static class AutoMapperConfiguration { public static […]

AutoMapping自定义通用类型 – 如何?

嘿伙计们,我正在使用automapper版本1.1.0.188 在我的AutoMapper.Configure中,我将实体映射到DTO,反之亦然,如下所示: // entity >> DTO Mapper.CreateMap(); Mapper.CreateMap(); // DTO >> Entity Mapper.CreateMap(); Mapper.CreateMap(); 当我做下面的映射(反之亦然)时,一切正常 Mapper.Map(entity); Mapper.Map<List, List>(entities); 请注意,automapper只能与List 一起使用,而无需配置任何内容。 我有一个Generic Container(本例简化): public class Container { public int TotalItems{get;set;} public IList Items{get;set;} } 现在,当我这样做时,没有任何额外的自动配置: Mapper.Map<Container, Container>(entityContainer); 我得到一个automapperexception: 缺少类型映射配置或不支持的mapping.Exception 但是,如果我在特定类型的自动配置中添加此行,如下所示,则Container映射有效。 Mapper.CreateMap<Container, Container>(); 但是,它只适用于Person / PersonDTO类型。 为什么是这样? 如何让automapper识别Container类,因为它识别List ?? 我不想为每种类型的AGAIN显式配置映射。 很酷,干杯

用于列表方案的AutoMapper似乎只重复映射列表中的第一个对象

我正在开发一个MVC 3应用程序,并使用AutoMapper在我的ViewModel和我的实体之间移动数据。 我有一个场景,我需要在两个列表之间移动数据。 出于某种奇怪的原因,AutoMapper似乎只复制源对象中的第一个对象,然后似乎将同一个对象复制n次到目标列表。 例如,假设您有2个列表,源包含6个实体项,而目标包含0个项,因为它刚刚实例化。 位置源[0]的项目被复制到目的地,然后重复复制源[0]以获得源列表中相同数量的项目,在这种情况下为6.我不明白可能是什么原因。 这是AutoMapper配置文件: public static class AutoMapperConfigurator { public static void Configure() { Mapper.CreateMap(); Mapper.CreateMap(); } } 这是Global.asax文件设置 protected void Application_Start() { AutoMapperConfigurator.Configure(); } 这是我调用Map方法的位置 userSearchModel.UserList = Mapper.Map<IList, IList>(userEntities);

AutoMapper,带有来自IDataReader的列表数据

using (IDataReader dr = DatabaseContext.ExecuteReader(command)) { if (dr.Read()) { AutoMapper.Mapper.CreateMap(); return AutoMapper.Mapper.Map<IDataReader, IList>(dr); } return null; } 如果dr 只有一行 – >错误: 抛出“Microsoft.CSharp.RuntimeBinder.RuntimeBinderException”类型的exception 如果博士有多行,它运行正常 。 任何帮助?

Automapper:如何不重复从复杂类型到基类的映射配置

我有一堆inheritance自这个CardBase的DTO类: // base class public class CardBase { public int TransId {get; set; } public string UserId { get; set; } public int Shift { get; set; } } // one of the concrete classes public class SetNewCardSettings : CardBase { // specific properties … } 在我的MVC项目中,我有一堆具有AuditVm复杂类型的视图模型,它具有与CardBase相同的属性: public class AuditVm { public int TransId {get; […]

AutoMapper忽略子集合属性

我试图映射具有子对象集合的相同类型的对象,并且发现应用于子对象上的属性的Ignore()似乎是umm …被忽略! 这是一个演示问题的unit testing。 class A { public int Id { get; set; } public string Name { get; set; } public ICollection Children { get; set; } } class B { public int Id { get; set; } public string Name { get; set; } } [TestClass] public class UnitTest1 { [TestInitialize()] public void […]

控制WCF XML输出中的命名空间前缀

我的WCF服务的当前输出如下(只有一部分显示如下): STATE_CD 1 STATE_CD_TXT Alabama STATE_CD_SHORT_TXT AL 在该示例中,对于每个US状态重复“RowDetail”元素。 我有两个问题: 如何删除标签中的“a:”前缀。 我假设我需要更改xmlns设置,但我不知道如何在不抛出错误的情况下执行此操作。 我查看了其他线程,但无法使其工作。 是否可以从输出中删除无关元素,即“行”和“字段”? 我理解为什么他们在那里 – 这是由于我如何设置我的课程(下面发布),但看看IMO是很麻烦的。 类别: [DataContract] public class Results2Detail { [DataMember] public RowDetail[] Rows; } [DataContract] public class RowDetail { [DataMember] public FieldDetail[] Fields; } [DataContract] public class FieldDetail { [DataMember] public String name; [DataMember] public String value; }

使用AutoMapper进行集合的多态映射

TL; DR:我遇到了多态映射问题。 我用一个测试套件制作了一个github repo来说明我的问题。 请在此处找到: LINK TO REPO 我正在努力实现保存/加载function。 为了实现这一点,我需要确保我序列化的域模型以序列化友好的方式表示。 为了实现这一点,我创建了一组DTO,其中包含进行有意义的保存或加载所需的最小信息集。 对于域名这样的东西: public interface IDomainType { int Prop0 { get; set; } } public class DomainType1 : IDomainType { public int Prop1 { get; set; } public int Prop0 { get; set; } } public class DomainType2 : IDomainType { public int Prop2 { get; […]