如何使用 Automapper 仅映射到带前缀的属性?

How to use Automapper to map to only properties with prefixes?

我正在尝试使用 Automapper 从 Class A 映射到 Class B。但是,我想创建一个仅在目标上有前缀字段时才映射的地图。我该怎么做?

例如,这行不通:

class TestSource
{
    public long id { get; set; }
}

class TestDest
{
    public long TD_id { get; set; }
    public long id { get; set; }
}

private void button1_Click(object sender, EventArgs e)
{
    TestSource lclTS = new TestSource() { id = 20 };

    TestDest lclTD = new TestDest() { id = 30 };

    var lclConfig = new MapperConfiguration
    (
        cfg =>
        {
            cfg.ClearPrefixes();
            cfg.RecognizeDestinationPrefixes("TD_");
            cfg.CreateMap<TestSource, TestDest>();
        }
     );

    IMapper lclMapper = lclConfig.CreateMapper();

    lclMapper.Map(lclTS, lclTD);
}

结果会是
lclTS.id = 20
lclTD.id = 20 <<<<<<< 错了,我没有映射这个,没有前缀,这个应该留30
lclTD.TD_id = 20

如果没有显式映射,自动映射器会映射具有相同名称和类型的字段。

尝试使用 ForMember 方法在字段之间创建显式映射。