[非專業翻譯] Mapster - 映射忽略


[非專業翻譯] Mapster - 映射忽略

系列介紹

[非專業翻譯] 是對沒有中文文檔進行翻譯的系列博客,文章由機翻和譯者自己理解構成,和原文相比有所有不同,但意思基本一致。

因個人能力有限,如有謬誤之處還請指正,多多包涵。

正文

本文將說明 Mapster 的 映射忽略成員

基本的映射忽略

Mapster 默認會自動映射所有符合規則的成員。如果想要在映射時忽略某一個成員,可以使用 Ignore 方法進行配置:

TypeAdapterConfig<TSource, TDestination>
    .NewConfig()
    .Ignore(dest => dest.Id);

基於規則的映射忽略

使用 IgnoreMember 方法可以根據某個條件決定是否映射成員:

TypeAdapterConfig.GlobalSettings.Default
    .IgnoreMember((member, side) => !validTypes.Contains(member.Type));

更多信息請參閱 基於規則映射成員

忽略未顯示映射的成員

使用 IgnoreNonMapped 方法可以忽略所有未顯示配置映射的成員。

例如,只映射 IdName

TypeAdapterConfig<TSource, TDestination>
    .NewConfig()
    .Map(dest => dest.Id, src => src.Id)
    .Map(dest => dest.Name, src => src.Name)
    .IgnoreNonMapped(true);

通過特性標簽配置映射忽略

當一個成員有 [AdaptIgnore] 特性標記時,這個成員將不會被映射:

public class Product {
    public string Id { get; set; }
    public string Name { get; set; }

    [AdaptIgnore]
    public decimal Price { get; set; }
}

更多信息請參閱 使用特性標簽配置映射

不映射滿足條件的成員

使用 IgnoreIf 方法,當滿足條件時將忽略此成員的映射:

TypeAdapterConfig<TSource, TDestination>
    .NewConfig()
    .IgnoreIf((src, dest) => !string.IsNullOrEmpty(dest.Name), dest => dest.Name);

不映射空值成員

Mapster 默認映射時會將 源對象的所有成員映射到目標對象,如果不想映射空值,那么可以使用 IgnoreNullValues 方法進行配置:

TypeAdapterConfig<TSource, TDestination>
    .NewConfig()
    .IgnoreNullValues(true);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM