В AutoMapper я использую ValueResolver, который возвращает структуру, подобную этой
struct MyStruct
{
public int propA;
public int propB;
public int propC;
}
class MyResolver : ValueResolver<MyViewModel, MyStruct>
{
protected override MyStruct ResolveCore(MyViewModel source)
{
....return MyStruct data
}
}
Я вернул структуру, потому что правила отображения довольно сложны, и я не мог написать собственный преобразователь для каждого свойства, поскольку они связаны друг с другом.
Так что моя идея заключалась в том, чтобы сделать это в одном резольвере, который возвращает структуру и использовал бы ее таким образом
AutoMapper.Mapper.CreateMap<MyViewModel, myData>()
.ForMember(dest => dest.SomePropA, src => src.ResolveUsing<MyResolver>().propA))
.ForMember(dest => dest.SomePropB, src => src.ResolveUsing<MyResolver>().propB))
К сожалению, это не работает.
Похоже, src.ResolveUsing<MyResolver>()
не возвращает структуру
Любая помощь более чем ценится.
Спасибо.