C# 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

关于Automapper的快速新手问题

我有以下代码:

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
};