AutoMapper Map() returns 错误的值
AutoMapper Map() returns wrong values
我有一个 class MyClass
到同一个 class MyClass
的映射。
class里面有一个List<T>
属性。
地图前的 List<T>
为 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.
}
}
我有一个 class MyClass
到同一个 class MyClass
的映射。
class里面有一个List<T>
属性。
地图前的 List<T>
为 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.
}
}