2010-05-05 6 views
0

Je le code suivant:Est-AutoMapper capable de base de types de résolution automatique sur les cartes existantes

[SetUp] 
public void SetMeUp() 
{ 
    Mapper.CreateMap<SourceObject, DestinationObject>(); 
} 

[Test] 
public void Testing() 
{ 
    var source = new SourceObject {Id = 123}; 
    var destination1 = Mapper.Map<SourceObject, DestinationObject>(source); 
    var destination2 = Mapper.Map<ObjectBase, ObjectBase>(source); 

    //Works 
    Assert.That(destination1.Id == source.Id); 

    //Fails, gives the same object back 
    Assert.That(destination2 is DestinationObject); 
} 

public class ObjectBase 
{ 
    public int Id { get; set; } 
} 

public class SourceObject : ObjectBase { } 
public class DestinationObject : ObjectBase { } 

Donc, fondamentalement, je veux AutoMapper résoudre automatiquement le type de destination « destinationObjet » sur la base des cartes existantes mises en place dans AutoMapper. Y a-t-il un moyen d'y parvenir?

Répondre

1

Vous pouvez essayer le mappage suivant avec la dernière version (1.1):

Mapper.CreateMap<ObjectBase,ObjectBase>() 
    .Include<SourceObject, DestinationObject>(); 

Mapper.CreateMap<SourceObject, DestinationObject>(); 
+0

Merci, exactement ce que j'ai besoin. En plus de cela, 1.1 a été publié hier, un timing parfait! –