Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 自动映射字符串忽略奇怪值的列表_C#_Automapper - Fatal编程技术网

C# 自动映射字符串忽略奇怪值的列表

C# 自动映射字符串忽略奇怪值的列表,c#,automapper,C#,Automapper,我有一个目标是列表,一个源是字符串。我将配置设置为忽略列表字段,但我一直将列表类型作为字符串值 class MyClass { string MyList {get;set;} } class MyClassDto { List<string> MyList {get;set;} } //My cfg is like this cfg.CreateMap<MyClassDto, M

我有一个目标是列表,一个源是字符串。我将配置设置为忽略列表字段,但我一直将列表类型作为字符串值

    class MyClass
    {
         string MyList {get;set;}
    }

    class MyClassDto
    {
          List<string> MyList {get;set;}
    }

//My cfg is like this
    cfg.CreateMap<MyClassDto, MyClass>().ForMember(x => x.MyList, opt => opt.Ignore());

//I've mapped this way
ObjectMapper.Map(input, dest);

//and this way
var destClass = ObjectMapper.Map<MyClass>(input);
它不会抛出错误,但当其列表为空时,它会使我的字符串字段为: System.Collections.Generic.List`1[System.String]


有人能解释一下原因吗?

从您提供的示例来看,您使用的映射程序似乎不知道您的配置。在AutoMapper 9中,您可以使用配置创建映射器,例如:

var config = new MapperConfiguration(cfg =>
{
    cfg.CreateMap<MyClassDto, MyClass>().ForMember(x => x.MyList, opt => opt.Ignore());
});

var mapper = config.CreateMapper();

var dest = mapper.Map<MyClass>(input);

有关更多信息,请参阅。

重做会有所帮助。做一个我们可以执行并看到失败的测试。请把你的问题包括在你的完整源代码中,它可以被其他人编译和测试。你不能在这里测试什么?创建两个类,一个带字符串,一个带列表,在cfg中忽略,然后映射。你需要我的全部源代码吗?我知道你有如上所示的配置。如果它不知道忽略,我会不会出错?这就是奇怪的地方。我没有得到一个错误,它只是将类类型存储到字符串字段中。是的,您应该得到一个错误。你使用什么版本的AutoMapper?我不明白如果我忽略了,为什么会出现错误?是8.1.1你真的叫ObjectMapper.Map吗?根据ObjectMapper的定义,它是抽象的,而且它的映射还需要3个附加参数。