0

如何在嵌套映射中使用 MapContext.Current?例如:

public class Foo {
    public string Name { get; set; }
}

public class Bar {
    public string Name { get; set; }
}

public class Src {
    public IEnumerable<Foo> Foos { get; set; }  
}

public class Dst {
    public IEnumerable<Bar> Bars { get; set; }  
    public string Name { get; set; }
}

TypeAdapterConfig<Foo, Bar>
    .NewConfig()
    .Map(d => d.Name, s => (string)MapContext.Current.Parameters["prefix"] + s.Name);

TypeAdapterConfig<Src, Dst>
    .NewConfig()
    .Map(d => d.Bars, s => s.Foos)
    .Map(d => d.Name, s => (string)MapContext.Current.Parameters["prefix"]);
    
var src = new Src 
{
    Foos = new [] { "test" }
};  

var dst = src
    .BuildAdapter()
    .AddParameter("prefix", "!")
    .AdaptToType<Dst>();

当我尝试将 src 映射到 dst 时,我会Null reference exception尝试MapContext.Current将 Foos 映射到 Bars。上下文适用于顶级映射(将设置 Dst.Name),但无法在嵌套映射上访问。我该如何解决?

4

0 回答 0