c# - Automapper公约

标签 c# automapper

Automapper 是可能的设置一个约定,以便在您要映射到的实体只是附加了“ViewModel”的情况下,不必手动创建 map 。

例如,我宁愿不必设置以下 map :

Mapper.CreateMap<Error, ErrorViewModel>();

我知道如果需要投影我需要创建一个自定义 map ,但是有一个创建 map 的约定会很好。

最佳答案

您需要使用 Mapper.DynamicMap<TDest>(source)进行映射。

正如您在下面的示例中看到的,它会自动将匹配的属性从源映射到目标。

using AutoMapper;
using System.Diagnostics;

class Program
{
    static void Main(string[] args)
    {
        var source = new Foo {Value = "Abc"};
        var destination = Mapper.DynamicMap<FooViewModel>(source);

        Debug.Assert(source.Value == destination.Value);
    }
}

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

public class FooViewModel
{
    public string Value { get; set; }
}

关于c# - Automapper公约,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2030227/

相关文章:

c# - 如何在类库项目中配置自动映射器?

c# - 如何映射具有延迟加载属性的实体(不会导致它们加载)?

c# - Automapper 无法翻译通用列表

c# - 如何全局忽略映射源空值?

c# - 小类或综合类

c# - 在异步方法中捕获异常后激活

c# - Irony 解析器中的表达式优先级

c# - 在 Windows 窗体控件中调整大小以及调整窗体大小

c# - 原始类型的透明代理

c# - AutoMapper - 为什么要覆盖整个对象?