Как настроить Automapper для преобразования строки в массив любого типа? - PullRequest
0 голосов
/ 28 марта 2019

Я хотел бы представить соглашение 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[]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...