2017-09-01 1 views
0

J'ai dupliqué un Class1 dans une Classe2 avec les mêmes propriétés mais pas toutes. Dans mon contexte, j'ai un obj (o1) Class1 initialisé avec des valeurs et je veux changer certains avec des valeurs d'un obj2 (o2) Classe2 sans perdre les données o1 (valeurs qui ne sont pas dans o2). Manuellement, j'ai besoin de réaffecter o1 avec les valeurs de o2, donc je voudrais trouver une façon automatique de mapper les classes.Mappage de 2 classes avec les mêmes propriétés

Classes:

public class Class1 
{ 
    public bool Property1; 
    public int Property2; 
    public string Property3; 
    public bool Property4; 
    public int Property5; 
    public string Property6; 
    public bool Property7; 
    public int Property8; 
    public string Property9; 
    public bool Property10; 
    public int Property11; 
    public string Property12; 
    public bool Property13; 
    public int Property14; 
    public string Property15; 
    public bool Property16; 
    public int Property17; 
    public string Property18; 
    public bool Property19; 
    public int Property20; 
} 

public class Class2 
{ 
    public bool Property1; 
    public int Property2; 
    public string Property3; 
    public bool Property7; 
    public int Property8; 
    public string Property9; 
    public bool Property10; 
    public int Property11; 
    public string Property12; 
    public bool Property13; 
    public int Property14; 
    public string Property15; 
    public bool Property16; 
    public int Property17; 
    public string Property18; 
    public bool Property19; 
    public int Property20; 

    public Class1 ToClass1() 
    { 
     return new Class1() 
     { 
      Property1 = Property1, 
      Property2 = Property2, 
      Property3 = Property3, 
      Property7 = Property7, 
      ... 
      Property20 = Property20 
     }; 
    } 
} 

Si je fais ToClass1(), je perds les valeurs de property4, Property5 et propriété6 du o1.

Ce que je fais maintenant:

// o1 and o2 are initialised with values. 
o1.Property1 = o2.Property1; 
o1.Property2 = o2.Property2; 
o1.Property3 = o2.Property3; 
o1.Property7 = o2.Property7; 
... 
o1.Property20 = o2.Property20; 
+0

Est-ce que Automapper n'est pas une option? – pinkfloydx33

+0

serez-vous toujours en mesure de remplir la propriété4,5,6 – Amit

Répondre

0

vous devez utiliser automapper et configurer votre règle de mappage pour ignorer les propriétés que vous ne voudrez pas la carte.

Look at this link