无需LINQ的AutoMapper

问题描述 投票:-1回答:1

如何在不使用LINQ表达式的情况下映射两个类型及其属性?我有源和目标类型以及源和目标属性的名称。

.net automapper
1个回答
0
投票

结果发现很简单。

var sourceType = typeof(SourceType);
var targetType = typeof(TargetType);

var cfg = new MapperConfiguration(x =>
{
    var map = x.CreateMap(sourceType, targetType);

    map.ForMember("TargetProperty", dest =>
    {
        dest.MapFrom("SourceProperty");
    });
});

var mapper = new Mapper(cfg);

var a = new SourceType { SourceProperty = "Test" };
var b = new TargetType();

mapper.Map(a, b);

-1
投票

很明显的方法

public static TargetType ToTarget(this SourceType source)
{
    return new TargetType
    {
        TargetProperty1 = source.SourceProperty1,
        TargetProperty2 = source.SourceProperty2,
        TargetProperty3 = source.SourceProperty3
    };
}

// Usage

var target = source.ToTarget();

不涉及LINQ表达式;)

© www.soinside.com 2019 - 2024. All rights reserved.