繁体   English   中英

C#AutoMapper数组到列表

[英]C# AutoMapper Array to a List

我已经阅读了将数组自动映射到列表,但是实际上这是列表到数组,我确实希望数组到列表。 这是我的代码:

using AutoMapper;
using System;
using System.Collections.Generic;
using System.Linq;

namespace PocArrayListMap
{
    class Destination
    {
        public List<string> list = new List<string>();
    }

    class Origin
    {
        public string[] array;
    }

    class Program
    {
        static void Main(string[] args)
        {
            Mapper.Initialize(cfg => cfg.CreateMap<Origin, Destination>().ForMember(e => e.list, opts => opts.MapFrom(s => s.array.ToList())));

            var config = new MapperConfiguration(cfg => cfg.CreateMap<Origin, Destination>());
            config.AssertConfigurationIsValid(); // Exception here

            var o = new Origin() { array = new string[] { "one", "two", "three" } };

            var d = Mapper.Map<Destination>(o);

            Console.WriteLine(string.Join(", ", d.list));
        }
    }
}

这是异常消息:

来源->目的地(目的地成员列表)

PocArrayListMap.Origin-> PocArrayListMap.Destination(目标成员列表)

未映射的属性:

名单

使用Automapper(6.2.2)和.Net 4.6.2的最新版本。并非与平台或版本相关。

如此处所述编辑https: //stackoverflow.com/a/5591125/169714 automapper应该自动执行列表和数组内容。 但是我一直在获取未映射的属性。 即使我有ForMember方法。

我尝试了此代码(使用Automapper 6.2.2),它在我的身边工作:

class Program
{
    static void Main(string[] args)
    {
        Mapper.Initialize(cfg => cfg.CreateMap<Origin, Destination>().ForMember(e => e.list, opts => opts.MapFrom(s => s.array.ToList())));
        Mapper.AssertConfigurationIsValid();

        Origin o = new Origin {array = new[] {"one", "two", "three"}};
        Destination d = Mapper.Map<Destination>(o);

        Console.WriteLine(string.Join(", ", d.list));
    }
}

您的清单中是否包含任何物品? 因为我看不到是否为它分配了值,所以从我的角度来看,您的列表为空...

线程中,评论之一是:“现在5.0.1出来了,我必须将其更改为CreateMap(MemberList.None),否则我将得到错误”。

希望我能帮上忙!

如何 map Object 列出<object> c# 自动映射器<div id="text_translate"><p>任何想法如何 map 单个 object ot 列表? 我有:</p><pre> class AdditionalData: string data1 string data2 string data3 class Person: AdditionalData additionalData string UCN class AdditionalDataDTO: string data1 string data2 string data3 string data4 string data5 class PersonDTO: AdditionalDataDTO additionalData[] string UCN</pre><p> 那么如何将 map AdditionalData 到 List 我希望源成为第一个 object ot 列表我知道如何将 map AdditionalData 到 AdditionalDataDTO</p></div></object>

[英]How to map Object to List<Object> c# Automapper

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM