Skip to content

When using TypeAdapterConfig.GlobalSettings.Default.IgnoreNullValues(true), it causes the Mapper function to be called twice. #737

Open
@jiuzhou2019

Description

@jiuzhou2019

There is example code following this. When Adapt() is called, it can be seen from the console that SummaryDetail runs twice. I would like to ask what is the reason for this and how to avoid it. I have also uploaded the test code for the entire project in the attachment. Thank you all for helping me answer this.

Please attach the test code file, and I will take a look to provide further assistance.

TestMapster.zip

Program.cs:

TypeAdapterConfig.GlobalSettings.Default.IgnoreNullValues(true);
TypeAdapterConfig.GlobalSettings.Scan(Assembly.Load("TestMapster"));

TestInput.cs:

public class TestInput
{
    public string Summary { get; set; }
}

public class TestView
{
    public string Summary { get; set; }
}

MapperConfig.cs

public class MapperConfig : IRegister
{
    public void Register(TypeAdapterConfig config)
    {
        config.ForType<TestInput, TestView>()
       .Map(dest => dest.Summary, src => SummaryDetail(src.Summary))
       ;
    }

    private static string SummaryDetail(string s)
    {
        Console.WriteLine($"================{s}================");
        return s + " plus";
    }
}

Controller.cs

    [HttpGet]
    public TestView Get()
    {
        var input = new TestInput { Summary = "Hello World" };
        return input.Adapt<TestView>();
    }

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions