在MvvmCross和AutoMapper中使用DI

时间:2018-11-01 17:33:10

标签: automapper mvvmcross

我正试图让AutoMapper使用Mvx.IoCProvider.Resolve方法来解决依赖关系。到目前为止,似乎没有任何预期的工作。

关于此的AutoMapper文档非常简洁,仅给出一个衬里示例:

Mapper.Initialize(cfg =>
{
    cfg.ConstructServicesUsing(ObjectFactory.GetInstance);    
    cfg.CreateMap<Source, Destination>();
});

所以我的配置如下:

Mapper.Initialize(cfg =>
{
    cfg.AddProfile(new MyAutoMapperProfile());
    cfg.ConstructServicesUsing(Mvx.IoCProvider.Resolve);
});

我也尝试过使用Func,例如:

private object GetDepType(Type arg)
{
    var t = Mvx.IoCProvider.Resolve(arg);

    return t;
}

这仍然是一个错误,抱怨类没有无参数的构造函数:

  

MyViewModel需要具有0 args或仅可选的构造函数   args。

在我的个人资料中,我还指定了应该使用服务定位符构造我的类型:

CreateMap<MyDto, MyViewModel>().ReverseMap().ConstructUsingServiceLocator();

我仍然无法使用AutoMapper将Mvx DI容器用于依赖项。我缺少什么配置才能使此方案正常工作?

0 个答案:

没有答案