自动映射 - 为成员设置自定义类型转换器

时间:2011-04-03 10:27:07

标签: c# automapper

我们有两个班级

public class Source
{
     public string Prop1 {get;set;}
}

public class Dest
{
     public float Prop1 {get;set;}
}

如何为Prop1属性设置自定义类型转换?

Mapper.CreateMap<Source, Dest>()

2 个答案:

答案 0 :(得分:2)

您可以按照文档中的说明使用ConvertUsing。为此,您需要定义转换器。或者您可以定义映射:

class Program
{
    static void Main(string[] args)
    {
        AutoMapper.Mapper.CreateMap<Source, Dest>()
            .ForMember(
                dest => dest.Prop1,
                src => src.MapFrom(m => float.Parse(m.Prop1, System.Globalization.CultureInfo.InvariantCulture)
            ));
        Source sourceObject = new Source() { Prop1 = "1.5" };
        Dest destination = AutoMapper.Mapper.Map<Source, Dest>(sourceObject);
        Console.WriteLine("value {0}", destination.Prop1);
    }
}

public class Source
{
    public string Prop1 { get; set; }
}

public class Dest
{
    public float Prop1 { get; set; }
}

答案 1 :(得分:0)

可能只是手动映射对象会更好。

关于自定义映射,您可以阅读here