在.NET Project中首次设置AutoMapper(6.2.2)

时间:2017-12-21 10:59:14

标签: c# .net automapper-6

想要使用AutoMapper来处理一些“猴子”。码。它适用于蝙蝠;现在希望在一个地方设置所有映射。所以,我有:

  1. AppStart文件夹中的静态类AutoMapperConfiguration。
  2. 一种静态配置方法,我在其中调用Mapper.Initialize()。我从Global.axax.cs调用Configure() 在控制器中,我继续使用Mapper.Map(src obj,dest obj)。但是,这给了我一个Unmapped属性异常。
      

    当我在MappingConfiguration变量中使用CreateMap并执行iMapper.Map()时,它正在工作。这是正确的方法吗?如果是这样,如何从一个位置配置和使用它?我可以使用统一容器吗?

1 个答案:

答案 0 :(得分:3)

因为我不想孤儿这个问题;为了任何(不幸的)最终解决这个问题的人的利益;这对我有用:

  1. AutoMapperConfiguration类中的Configure()内部;而不是使用 ConnectivityManager connectivity = (ConnectivityManager) getContext() .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo[] infos = connectivity.getAllNetworkInfo(); for (int i = 0; i < infos.length; i++) { if (infos[i].getState() == NetworkInfo.State.CONNECTED) { // return true; //<-- -- -- Connected Log.d("ConnectionString", "Connected"); } 语法;我设置了MappingConfiguration类型的属性,如

    Mapper.Initialize()

  2. 2)下一步是从Global.asax.cs

    调用Configure()

    这允许我在unityConfig.cs中执行以下操作:

    config = new MapperConfiguration(cfg =>
                    {
                        cfg.CreateMap<viewModel1, entity1>();
                        cfg.CreateMap<viewModel2, entity2>();
                        etc..
                     });

    剩下的就是将一个IMapper实例注入我的Controller并使用它:

    unityContainer.RegisterInstance<IMapper>(AutoMapperConfiguration.config.CreateMapper());