.net 无LINQ自动制版机

.net 无LINQ自动制版机,.net,automapper,.net,Automapper,如何在不使用LINQ表达式的情况下映射两种类型及其属性?我有源和目标类型以及源和目标属性的名称。 public static TargetType ToTarget(this SourceType source) { return new TargetType { TargetProperty1 = source.SourceProperty1, TargetProperty2 = source.SourceProperty2, T

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

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表达式;)

结果很简单:

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

试着解释你的意思。也许在你的问题中添加一个例子我很抱歉,但这很明显,不需要任何额外的解释…表达式有什么问题?没什么问题,但我正在动态构建这张地图,对于开发时未知的类型。这是一个与我的问题完全无关的非常愚蠢的示例。@Ricardopers,您应该在问题中提到类型在开发时未知,并且您正在动态构建“映射”,以尊重其他人的时间,并避免所有猜测。否则你的问题应该得到这个答案;)真正地我认为这就是类型和财产名称的含义…无事生非你是一个简单、直截了当、客观的问题的制造者之一耶,对:)希望有人能把这个问题从痛苦中解脱出来。我只是做了,没有更多的话要说或补充。不,为了后代:)