Я новичок в AutoMapper и пытаюсь преобразовать объект в более крупный (значит, больше полей) объект.Я ищу способ установить значение по умолчанию для всех строковых полей назначения.В настоящее время не удалось найти способ определения общего условия для всех строковых полей.
Допустим:
class A
{
public string a { get; set; }
}
class B
{
public DateTime DateTime { get; set; }
public string a { get; set; }
public string b { get; set; }
public string c { get; set; }
}
Тогда при использовании mapper:
var config = new MapperConfiguration(cfg => cfg.CreateMap<A, B>());
var mapper = config.CreateMapper();
B map = mapper.Map<B>(new A {a = "f"});
Неподключенные строки'значение равно нулю.Я ищу способ установить не отображенные строки в string.Empty
.Используя config.ForAllMembers(...)
.Примечание: я знаю, что могу использовать определенные ForMember
для каждого поля, например:
var config = new MapperConfiguration(cfg => cfg.CreateMap<A, B>()
.ForMember(des => des.b, x=> x.MapFrom(src => string.Empty)));
Но это не так хорошо.Почему?
- Иногда у меня есть поля, в которых их значение не гарантировано, оно может быть нулевым или допустимым, поэтому мне нужно обратить внимание на такой случай.
- В действительности у меня много полей, поэтому не всегда удобно определять такое правило для каждого поля.
Существует простое решение для такой необходимости?