我想介绍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[]