AutoMapper - 为所有通用类用法创建一个映射

问题描述 投票:0回答:0

我有一个

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);

有没有办法做这样的事情?

c# asp.net generics automapper
© www.soinside.com 2019 - 2024. All rights reserved.