我正在尝试配置我的对象映射器,但不知道我正在使用哪个映射器。:/
这听起来可能有点奇怪。这样做的原因是我正在尝试洋葱架构,因此我的 UI 无法了解位于我的基础架构中的对象映射器。有关示例,请参见此解决方案。
我在弄清楚我应该如何“委托”非默认映射行为时遇到了一些麻烦。像这样的东西:
Mapper
.CreateMap<MyModel, MyDestViewModel>()
.ForMember(
dest => dest.SomeDestinationProperty,
opt => opt.MapFrom(src => src.SomeSourceProperty)
);
我在我的 MVC 项目中设置了一个从 Global.asax 调用的类,这是我要配置我的映射的地方。
public static class MapConfig
{
public static void RegisterMaps()
{
}
}
我在想我可以做如下的事情。(IMapper是一个位于Domain中的自定义接口)
public static void RegisterMaps(HttpConfiguration config)
{
var mapper = config.DependencyResolver.GetService(IMapper);
mapper.CreateMap<MyModel, MyViewModel>();
}
现在......我将如何设置像.ForMember这样的特殊行为?请记住,它不能特定于 AutoMapper。
我在想一些事情,在这些方面mapper.CreateMap<MyModel, MyViewModel>(Expression<Func<T>>)
,Func 会做一些我现在无法弄清楚的黑魔法:( - 我是在正确的道路上还是我错过了一些重要的事情?