[英]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.