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



让我们有两个类

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

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

Mapper.CreateMap<Source, Dest>()

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

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

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

关于自定义映射,您可以在此处阅读

最新更新