如何在嵌套映射中使用 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),但无法在嵌套映射上访问。我该如何解决?