gpt4 book ai didi

c# - AutoMapper Map() 返回错误值

转载 作者:行者123 更新时间:2023-11-30 23:32:03 25 4
gpt4 key购买 nike

我有一个类的映射 MyClass同类MyClass .

类(class)有一个List<T>其中的属性(property)。List<T>在 map 之前为 NULL。

AutoMapper映射后,List<T>不再是 NULL。 (AllowNullDestinationValues 在这里什么都不做...)

这是故意的还是错误?我是否缺少一些配置步骤?

using System.Collections.Generic;
using System.Diagnostics;
using AutoMapper;

namespace ConsoleApplication1
{
public class MyClass
{
public string Label { get; set; }

public List<int> Numbers { get; set; }
}

class Program
{
static void Main(string[] args)
{
Mapper.CreateMap<MyClass, MyClass>();
MyClass obj1 = new MyClass { Label = "AutoMapper Test" };
MyClass obj2 = new MyClass();
Mapper.Map(obj1, obj2);

Debug.Assert(obj2 != null && obj2.Numbers == null, "FAILED");
}
}
}

我使用 NuGet 的 AutoMapper v4.1.1。

最佳答案

默认情况下,AutoMapper 会将空集合映射到空集合。您可以通过创建自己的 AutoMapper 配置文件来修改它。

看看下面的代码。

public class MyClass
{
public string Label { get; set; }

public List<int> Numbers { get; set; }
}
class Program
{
static void Main(string[] args)
{
Mapper.AddProfile<MyProfile>(); // add the profile
MyClass obj1 = new MyClass { Label = "AutoMapper Test" };
MyClass obj2 = new MyClass();
Mapper.Map(obj1, obj2);

Debug.Assert(obj2 != null && obj2.Numbers == null, "FAILED");
}
}

public class MyProfile : Profile
{
protected override void Configure()
{
AllowNullCollections = true;
CreateMap<MyClass, MyClass>();
// add other maps here.
}
}

关于c# - AutoMapper Map() 返回错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34420450/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com