Я хочу передать параметр в отображение, чтобы он определял значение на основе этого параметра.
Простой класс
public class Person
{
string Name;
}
И его DTO
public class PersonDTO
{
string Name;
string IsAProgrammer;
}
Я хочу что-то вроде этого
var parameterIsTrue = true; // how do I pass this value?
CreateMap<MyClassDTO, MyClass>()
.ForMember(x => x.Name, opt => opt.MapFrom(src => src.Name))
.ForMember(x => x.IsAProgrammer,
opt => opt.MapFrom(parameterIsTrue ? "sure!" : "nope"));
РЕДАКТИРОВАТЬ
Я пытаюсь написать пользовательский резолвер, но не могу понять, как передать ему аргументы. Я понял, как сделать преобразователь:
public class PersonResolver : IValueResolver<Person, PersonDTO, string>
{
...
public string Resolve(Person src,
PersonDTO dest,
string destMember,
ResolutionContext context)
{
return (bool) context.Items["isProgrammer"] ? "sure!" : "nope";
}
}
Но я все еще не могу с отображением:
CreateMap<MyClassDTO, MyClass>()
.ForMember(x => x.Name, opt => opt.MapFrom(src => src.Name))
.ForMember(x => x.IsAProgrammer,
opt => opt.ResolveUsing(PersonResolver)); // what ???
// how do I pass the context?