时人不识凌云木,直待凌云始道高。这篇文章主要讲述在ASP.NET MVC App中初始化AutoMapper v6时出错相关的知识,希望能为你提供帮助。
var config = new MapperConfiguration(cfg =>
{
cfg.CreateMap<
SomeSourceModel, SomeDestinationModel>
();
});
config.AssertConfigurationIsValid();
var mapper = config.CreateMapper();
【在ASP.NET MVC App中初始化AutoMapper v6时出错】我在项目中重复这些代码。考虑创建一个公共接口IMapper,以便我可以在需要使用时调用它。
我创建的解决方案是
private IMapper Mapper(TSource source, TDestination dest)
{
var config = new MapperConfiguration(cfg =>
{
cfg.CreateMap<
source, dest>
();
});
config.AssertConfigurationIsValid();
returnconfig.CreateMapper();
}
它不起作用。问题是我不能以这种方式将源模型和目标模型作为参数传递。怎么解决这个?
更新1:
正如@ 12秒提到的那样,我开始在
MapperConfigration
中初始化Global.asax.cs
在App_Start文件夹中,我创建了
public class MappingProfile : Profile
{
public MappingProfile()
{
CreateMap<
SourceModel1, DestinationModel1>
();
CreateMap<
SourceModel2, DestinationModel2>
();
CreateMap<
SourceModel3, DestinationModel3>
();
CreateMap<
SourceModel4, DestinationModel4>
();
CreateMap<
SourceModel5, DestinationModel5>
();
Mapper.AssertConfigurationIsValid();
}}
在
Global.asax.cs
public class AutoMapperConfiguration
{
public static void Configure()
{
Mapper.Initialize(x =>
{
x.AddProfile<
MappingProfile>
();
});
}
}
然后我试着在几个地方打电话给
AutoMapperConfiguration.Configure();
。当我开始运行App时,我得到了相同的错误消息:Mapper未初始化。使用适当的配置调用Initialize。如果您尝试通过容器或其他方式使用映射器实例,请确保您没有对静态Mapper.Map方法的任何调用,并且如果您使用的是ProjectTo或UseAsDataSource扩展方法,请确保传入适当的IConfigurationProvider实例。我想在哪里打电话给
AutoMapperConfiguration.Configure();
?我错过了什么?答案版本5.0.x +
public class AutoMapperConfiguration
{
public static void Configure()
{
Mapper.Initialize(x =>
{
x.AddProfile<
MappingProfile>
();
});
Mapper.AssertConfigurationIsValid();
}
}
另一答案问题解决了。应在Mapper初始化后执行
Mapper.AssertConfigurationIsValid();
。public class AutoMapperConfiguration
{
public static void Configure()
{
Mapper.Initialize(x =>
{
x.AddProfile<
MappingProfile>
();
});
Mapper.Configuration.AssertConfigurationIsValid();
}
}
推荐阅读
- 如何在android中的接口回调内部传输数据
- 可捕获的致命错误(类Proxies的对象 __ CG __AppBundleEntityModelo无法转换为字符串)
- 使用appcmd添加新的网站问题
- 根据PC更改app.config连接字符串
- 当文件实际引用v10时,找不到v11.0WebApplicationsMicrosoft.WebApplication.targets
- 如何在Android中做像Combobox这样的“东西”()
- 如何在android studio 3中使用photoview 2.0.0
- 滚动带有ScrollController的CustomScrollView时,SliverAppbar仍然可见
- 如何使用USB和EFI Shell格式化Windows 10的Medion Akoya S2218笔记本电脑