我有一个
OverridableValue<T>
类来表示一个可以手动覆盖的值(包含一个 T Value
道具和一个布尔值,用于判断它是否是手动的)。此类在我的内部模型中使用,在我的 API 中,我有一个 DTO,它应该只保存值而不考虑它是否是手动的。
例如,假设我使用这些类:
public class Test
{
public OverridableValue<string> Prop1 { get; set; }
public OverridableValue<int> Prop2 { get; set; }
}
public class TestDTO
{
public string Prop1 { get; set; }
public int Prop2 { get; set; }
}
现在我想使用 AutoMapper 在 Test 类和 TestDTO 类之间创建一个映射。我可以这样做:
CreateMap<OverridableValue<string>, string>().ConvertUsing(o => o.Value);
CreateMap<OverridableValue<int>, int>().ConvertUsing(o => o.Value);
CreateMap<Test, TestDTO>();
这会起作用,但我不想为 OverridableValue 类的每个可能的通用用法添加一行。我想知道是否有办法为每次使用创建一个映射。基本上,我想要这样的东西:
CreateMap<OverridableValue<T>, T>().ConvertUsing(o => o.Value);
有没有办法做这样的事情?