1

我在从 AutoMapper 的静态 API 升级时遇到了问题。

我正在关注此页面上的示例,其中指出

4.1 及之前的典型用法是:

Mapper.Initialize(cfg => {
     cfg.AddProfile<AppProfile>();
     cfg.CreateMap<Source, Dest>(); });

var dest = Mapper.Map<Source, Dest>(new Source());

在 4.2 及更高版本中,这看起来像:

var config = new MapperConfiguration(cfg => {
     cfg.AddProfile<AppProfile>();
     cfg.CreateMap<Source, Dest>();
});

var mapper = config.CreateMapper();
var dest = mapper.Map<Source, Dest>(new Source());

但是,在通过 NuGet 使用 v4.2.1 时,我看不到这个“CreateMapper”方法。

我应该用什么?

4

1 回答 1

1

我已经意识到是什么导致了我的问题。

为了在MapperConfiguration应用程序范围内使用,我将其存储为静态属性:

public static IMapperConfiguration { get; private set; }

public static void Init()
{
    MapperConfiguration = new MapperConfiguration(...);
    ...
    MapperConfiguration.    // CreateMapper() not available
}

这里的问题是该CreateMapper方法只在MapperConfiguration 类上可用,在IMapperConfiguration 接口上不可用。

于 2016-03-14T16:57:05.190 回答