C# 所有映射的自定义自动映射名称/类型约定?

C# 所有映射的自定义自动映射名称/类型约定?,c#,asp.net-mvc,automapper,C#,Asp.net Mvc,Automapper,我在ASP.NET MVC应用程序中使用AutoMapper 6.0在实体和视图模型之间进行映射。实体使用的是字节[8]版本属性,但视图模型使用的是ulong版本属性。由于不同的属性类型,默认映射会忽略该字段,我将以视图模型的默认值(即0)结束 目前,我在每个_mapper.Map(entity,viewModel)之后调用下面的代码 我如何在初始化期间配置AutoMapper,这样就不需要第二行了 我有数百个模型,因此我不想使用FormMember(cfg)配置创建自定义贴图,而是想修改Aut

我在ASP.NET MVC应用程序中使用AutoMapper 6.0在实体和视图模型之间进行映射。实体使用的是字节[8]版本属性,但视图模型使用的是ulong版本属性。由于不同的属性类型,默认映射会忽略该字段,我将以视图模型的默认值(即0)结束

目前,我在每个_mapper.Map(entity,viewModel)之后调用下面的代码

我如何在初始化期间配置AutoMapper,这样就不需要第二行了

我有数百个模型,因此我不想使用FormMember(cfg)配置创建自定义贴图,而是想修改AutoMaper约定,以便在默认情况下为每个贴图进行上述类型的转换,例如:

public class MyCustomProfile : AutoMapper.Profile
{
    public MyCustomProfile()
    {
        CreateMissingTypeMaps = true;
        //use custom converter for this convetion: ulong vVersion = BitConverter.ToUInt64(eVersion.ToArray(), 0);
    }
}

您可以使用以下命令尝试使用转换器进行类型映射:

CreateMap<byte, ulong>().ConvertUsing(System.Convert.ToUInt64);
CreateMap().ConvertUsing(System.Convert.ToUInt64);
按要求编辑:

CreateMap<byte[], ulong>().ConvertUsing(x=> BitConverter.ToUInt64(x, 0));
CreateMap().ConvertUsing(x=>BitConverter.ToUInt64(x,0));

近乎完美!非常感谢。你解开了这个谜。你能用上面例子的正确代码编辑你的答案吗?CreateMap().ConvertUsing(x=>BitConverter.ToUInt64(x,0));谢谢
CreateMap<byte[], ulong>().ConvertUsing(x=> BitConverter.ToUInt64(x, 0));