首页 > 解决方案 > 你如何从 List<> 到 Automapper c# 中的类

问题描述

在当前示例中,我发现 HeaderPayload => Header 很容易,因为我只是source.Data.Values直接使用。让我以另一种方式构造 Header => HeaderPayload?

当前配置错误,在 Map 调用中失败。

        [Test]
        public void TestAutoMapper2()
        {
            // arrange
            var config = new MapperConfiguration(cfg =>
            {
                cfg.CreateMap<Header, HeaderPayload>()
                        .ForMember(dest => dest.Data, map => map.MapFrom(src => src.Values))
                        ;
            });

            var a = new Header { Values = new List<string> { "foo", "bar" } };

            var mapper = new Mapper(config);

            // act
            var b = mapper.Map<Header>(a);

            // assert
            Assert.IsNotNull(b.Data);
            Assert.IsNotEmpty(b.Data.Values);
            Assert.AreEqual("foo", b.Data.Values.FirstOrDefault());
        }

        public class Data
        {
            public List<string> Values { get; set; }
        }

        public class Header
        {
            public List<string> Values { get; set; }
        }

        public class HeaderPayload
        {
            public Data Data { get; set; }
        }

标签: c#automapper

解决方案


推荐阅读