我的结构如下:
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;
}
}
类InitialStandard
和AlteredStandard
具有与Standard
相同的属性。差异仅在于在2个不同的配置文件中出现的值。
有人可以告诉我为什么收到“无法隐式将类型DetailsViewModel<AlteredStandard>
转换为DetailsViewModel<Standard>
”或“无法将类型DetailsViewModel<InitialStandard>
隐式转换为DetailsViewModel<Standard>
”这样的消息吗?