C# Automapper,我们能看看它是如何映射对象的吗?
关于Automapper的快速新手问题 我有以下代码:C# Automapper,我们能看看它是如何映射对象的吗?,c#,automapper,C#,Automapper,关于Automapper的快速新手问题 我有以下代码: CreateMap<MyDataContract, MyViewModel>() .MapFrom(s => s.Trans, d => d.Trans); CreateMap() .MapFrom(s=>s.Trans,d=>d.Trans); 在DataContract,MyDataContract中,我有以下内容: [DataMember] public IEnumerable<ReferTy
CreateMap<MyDataContract, MyViewModel>()
.MapFrom(s => s.Trans, d => d.Trans);
CreateMap()
.MapFrom(s=>s.Trans,d=>d.Trans);
在DataContract,MyDataContract中,我有以下内容:
[DataMember]
public IEnumerable<ReferTypeDataContract> Refer { get; set;}
[DataMember]
公共IEnumerable引用{get;set;}
我试图找出Automapper是如何从上面的CreateMap映射到ReferTypeDataContract的。是否有任何可视化工具来检查此问题,或者可以添加一些调试代码以使其可见
我问这个问题的原因是,我有一个不同的映射映射MyDataContract,但我得到的是一组不同的引用列表结果,无法解决这个问题。Automapper可以可视化其执行计划,如文档中所述: 这意味着您可以获得任何源-目标对的表达式树。例如:
var configuration = new MapperConfiguration(cfg => {/* your mappings */});
LambdaExpression executionPlan = configuration.BuildExecutionPlan(typeof(Foo), typeof(Bar));
文档提供了使用它来可视化树的方法。如果它不起作用,让我们使用内置的文本可视化工具。从如下所示的源类开始:
public class Foo
{
public int Id { get; set; }
public List<FooInner> Inners { get; set; }
}
因此,它详细描述了
Foo
属性是如何映射的。然后发布您的代码。自动映射按名称映射字段。你没有发布任何显示reference
用法的帖子,以下是答案,其余的由你决定。因此,在这种情况下,它只是一个做自己事情的黑盒子,它是一个做自己事情的库,是的。图书馆倾向于这样做。你以为是什么?
$resolvedValue = .If (
False || $src == null
) {
.Default(System.Collections.Generic.List`1[XUnitTests.FooInner])
} .Else {
$src.Inners
};
$passedDestination = .If ($dest == null) {
.Default(System.Collections.Generic.List`1[XUnitTests.BarInner])
} .Else {
$typeMapDestination.Inners
};