簡體   English   中英

如果它們是默認值,如何告訴自動映射器從源類型跳過映射屬性?

[英]How to tell automapper to skip mapping properties from source type if they are default values?

我有兩種類型,在屬性設置為我指定的“默認”值的情況下,我希望能夠忽略將源實例上的屬性映射到目標實例。 默認值唯一存在的地方是該類型上方或構造函數中的一部分元數據:

    [System.ComponentModel.DefaultValue("")]
    public string Name { get; set; }

我該怎么做呢?

您可以使用“ ResolveUsing”方法來使用反射配置值。 或者,您可以使用“ UseValue”配置方法將默認值放置在映射配置中。

例如:

ForMember(x => x.Name, x => x.ResolveUsing(GetDefaultValueAttributeContent));

要么:

ForMember(x => x.Name, x => x.UseValue("Default Value"));

要添加條件,只需使用條件映射檢查類型的默認值即可:

.ForMember(destination => destination.Name,
    option => 
    {
        option.Condition(context => 
        {
            var src = context.InstanceCache.First().Value as SourceType;
            return src.Name == default(string);
        });

        option.ResolveUsing(GetDefaultValueAttributeContent);
    });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM