如何配置Automapper将字符串转换为任何类型的数组?

时间:2019-03-28 10:41:44

标签: c# automapper

我想介绍AutoMapper约定,该约定可以通过使用分隔符char拆分字符串值来将任何字符串属性映射到数组属性。

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

public class B {
    public MyEnum[] Prop1 { get; set; }
}

public enum MyEnum {
    Val1
}

 config.CreateMap<A, B>();
 var a = new A { Prop1 = "Val1" };
 var b = mapper.Map<B>(a);

我目前配置每种数组类型的类型转换,例如:

c.CreateMap<string, MyEnum[]>()
    .ConvertUsing(value => value.Split(',', StringSplitOptions.RemoveEmptyEntries)
         .Select(v => v.Trim())
         .Select(v => Enum.Parse<MyEnum>(v))
         .ToArray());

但是我想使其更通用,以便能够转换:

 - string => string[]
 - string => int[]
 - string => AnyEnum[]

0 个答案:

没有答案