[英]Configuring AutoMapper Maps for Dynamic/Expando Object
我正在使用AutoMapper将ExpandoObjects映射到Entity,并希望配置一些映射规则,特别是,我不想映射到任何从Entity继承的属性。 我试图在这些属性上设置“忽略”,但是它永远不会对顶级对象执行,我遇到了从实体字符串=>实体继承的实体属性的断点,但是从未对ExpandoObject =>实体继承。
Startup.cs
public IServiceProvider ConfigureServices(IServiceCollection services)
{
services.AddAutoMapper(config =>
{
config.ForAllMaps((cfg, expr) =>
{
if (typeof(Entity).IsAssignableFrom(cfg.DestinationType))
{
var properties = cfg.DestinationType.GetProperties()
.Where(prop => typeof(Entity).IsAssignableFrom(prop.PropertyType));
foreach (var prop in properties)
{
expr.ForMember(prop.Name, opt => opt.Ignore());
}
}
});
config.CreateMissingTypeMaps = true;
config.ValidateInlineMaps = false;
});
我找到了一些有效的代码,但我希望找到一种不全局的方法。
.AddAutoMapper(config =>
{
config.ShouldMapProperty = pi => !typeof(Entity).IsAssignableFrom(pi.PropertyType);
config.CreateMissingTypeMaps = true;
config.ValidateInlineMaps = false;
});
有没有一种方法可以为ExpandoObjects配置地图? 该文档显示了如何映射它们,但是没有为它们配置映射的任何信息。
不,来自ExpandoObject
映射是内置的,不能像您自己创建的常规映射那样工作。 而且没有办法对其进行配置。 这是代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.