私人/内部不映射

时间:2016-11-28 12:57:16

标签: c# .net automapper

我有一个我从未遇到的奇怪问题。

我有2个班级:

父类:

public class ParentClass
{
   private int? _clientType;

   internal int? Client_Type_ 
   {
      get { return _clientType; }
      set {  _clientType = value; }
   }

   public string Company_Name{ get; set; }

   public string Client_Type
   {
      get { return MyDictionary[_clientType.GetValueOrDefault(0)];
   }
}

儿童班:

public class ChildClass : ParentClass
{
   public string Full_Name { get; set; }
}

我正在我的Unity IoC容器中定义映射:

var config = new MapperConfiguration(cfg =>
{
   cfg.CreateMap<ParentClass, ChildClass>();
}

IMapper mapper = config.CreateMapper();

container.RegisterInstance(mapper);

在我的代码中,我正在映射:

var parentClass = GetParentClass();
var mappedClass = _mapper.Map<ChildClass>(parentClass);

奇怪的是......我可以检查parentClass的值,并且我最初传递给我的模型(parentClass)的所有值都在那里。但是,当它映射到新对象(childClass)时 - 公司名称粘贴...但_clientType和Client_Type_为空(最终影响Client_Type)。

有关我做错的任何建议吗?

1 个答案:

答案 0 :(得分:1)

如果您使用的是AutoMapper,则必须将初始化程序中的ShouldMapProperty设置为适当的值。

这样做是这样的:

Long.valueOf