自动转换

时间:2018-02-21 09:10:03

标签: c# automapper

我的结构如下:

public class DetailsViewModel<T> where T : Standard
{
   public IList<T> OrderLines { get; set; }
}

public class Standard{}

public class InitialStandard : Standard {}

public class AlteredStandard : Standard {}

public DetailsViewModel<Standard> Construct<T, U>(bool isAltered, DirectOrder directOrder)
   where T : DetailsViewModel<U>
   where U : Standard
{
   if (isAltered)
      {
         var model = Mapper.Map<DetailsViewModel<AlteredStandard>>(directOrder);
         return model;
      }
      else
      {
         var model = Mapper.Map<DetailsViewModel<InitialStandard>>(directOrder);
         return model;
      }
}

InitialStandardAlteredStandard具有与Standard相同的属性。差异仅在于在2个不同的配置文件中出现的值。

有人可以告诉我为什么收到“无法隐式将类型DetailsViewModel<AlteredStandard>转换为DetailsViewModel<Standard>”或“无法将类型DetailsViewModel<InitialStandard>隐式转换为DetailsViewModel<Standard>”这样的消息吗?

0 个答案:

没有答案