c# - 要构造的自动映射器类

标签 c# automapper

是否真的可以使用 AutoMapper 将类映射到结构? ?

目前我得到:

{"The type initializer for 'AutoMapper.TypeMapFactory' threw an exception."}

这是我的简化代码:

Mapper.CreateMap<A, B>()
.ForMember(dest => dest.a, opt => opt.MapFrom(src => src.b))
.ForMember(dest => dest.c, opt => opt.MapFrom(src => src.d))
.ForMember(dest => dest.f, opt => opt.MapFrom(src => src.g));

这里 A 是一个类,B 是一个结构。

最佳答案

将类实例映射到结构是完全可能的——AutoMapper 对泛型类型参数没有任何约束,并且它可以很好地处理结构。例如。如果你有

public class A
{
    public string b { get; set; }
    public int d { get; set; }
    public bool g { get; set; }
}

public struct B
{
    public bool f;
    public string a;
    public int c;
}

使用您的映射,以下代码可以正常工作:

var a = new A { b = "b", d = 42, g = false };
var b = Mapper.Map<B>(a);

关于c# - 要构造的自动映射器类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17550856/

相关文章:

c# - 为什么我必须在 AutoMapper 中创建 map

c# - 将 IQueryable where 子句从 DTO 映射到实体

C#比较数组

c# - 从 Excel 复制到 DataGridView C#

c# 反序列化 JSON web api 响应

c# - 使用 Automapper 从嵌套多层的列表中映射/转换为父属性

c# - AutoMapper map 中 foreach 的额外迭代

c# - 将实体添加到上下文时将 GUID 保留为空

c# - 配置 HttpClient 以使用服务来填充身份验证 header ?

xaml - 将 Automapper 与 Metro 应用程序结合使用