1

在我的 MVC 应用程序中,我将 Autofac IoC 容器与 Automapper 一起使用。它让我有机会实现自定义 ViewModel。

主要问题:如何使用 Automapper 5.1.1 将元数据从实体复制到 ViewModel?

我尝试实施Bettys解决方案,但我无法使用这种方法正确注册新的提供者。

代码也如下所示:

ModelMetadataProviders.Current = new MetadataProvider(
AutoMapper.Mapper.Engine.ConfigurationProvider);

ModelValidatorProviders.Providers.Add(new ValidatorProvider(
AutoMapper.Mapper.Engine.ConfigurationProvider);

或者

ModelMetadataProviders.Current = new MetadataProvider(
(AutoMapper.IConfigurationProvider)AutoMapper.Mapper.Configuration);

ModelValidatorProviders.Providers.Add(new ValidatorProvider(
(AutoMapper.IConfigurationProvider)AutoMapper.Mapper.Configuration));

没有像 Mapper.Engine 这样的属性。

当我实施第二种方法时,我得到了无效的操作异常:

附加信息:映射器未初始化。使用适当的配置调用初始化。如果您尝试通过容器或其他方式使用映射器实例,请确保您没有对静态 Mapper.Map 方法的任何调用,并且如果您使用 ProjectTo 或 UseAsDataSource 扩展方法,请确保传入适当的 IConfigurationProvider实例。

那么,我应该如何初始化 AutoMapper.Mapper.Configuration?

提前感谢您的时间和帮助。

或者也许有另一种更好的方法来映射元数据和视图模型?

4

0 回答 0