-1

私は 2 つのオブジェクトを持っていますが、これらは基本的に (完全ではない!) 同じです。どちらも値を持つプロパティを持っています。

1 つのオブジェクトを別のオブジェクトにマップし、ソース ターゲットのすべてのプロパティ値を宛先ターゲットに上書きしたいと考えています。しかし、これはデフォルトでは発生していないようですか?

注: 私のマップは、アプリケーションの起動時に既に定義されています。

私のオブジェクトは基本的に次のようになります。

public class Object1
{
    public String Name = "My new Name";
}

public class Object2
{
    public String Name = "My old Name";
}

// Then somewhere in my code:
Mapper.Map(obj1, obj2);

だから私はすべての値を から にマップしようとしObject1ますObject2。しかし、マッピングが完了すると、 はObject2からの値ではなく、古い値のままですObject1

AutoMapper で値をマップするにはどうすればよいですか?

4

2 に答える 2

3

AutoMapper最初に構成する必要があります。

Mapper.CreateMap<Object1, Object2>();

あなたの例では、マップしようとしていますclassesが、それは不可能ですinstances。クラスをマップする必要があります。

var o1 = new Object1();
var o2 = new Object2();

Mapper.Map(o1, o2);
于 2012-10-26T08:31:38.203 に答える
1

アップデート

Automapper新しいインスタンスを返し、その戻りインスタンスを古いインスタンスに割り当てます。

object1 = Mapper.Map<Object1, Object2>(object2);
于 2012-10-26T08:36:48.710 に答える