Automapper utilise reflection.emit
, êtes-vous sûr de pouvoir utiliser Automapper?
[Modifier]
ne sais pas de tout qui utilise sans réflexion, même celui que j'avais créé XmlDataMapper sur CodePlex utilise la réflexion. Il serait difficile d'en concevoir un sans réflexion ou réflexion.émit
La manière la plus simple et la plus simple de faire ceci serait ceci, vous pouvez utiliser l'une des deux ou les deux techniques.
public class ConversionHelper
{
public static ClassB Convert(ClassA item)
{
return new ClassB() { Id = item.Id, Name = item.Name };
}
public static List<ClassB> Convert(List<ClassA> list)
{
return list.Select(o => new ClassB() { Id = o.Id, Name = o.Name }).ToList();
}
}
public class ClassA
{
public int Id { get; set; }
public string Name { get; set; }
}
public class ClassB
{
public int Id { get; set; }
public string Name { get; set; }
}
De l'échantillon que vous avez donné où vous essayez de la carte de toute façon la propriété, un par un, c'est sur les mêmes lignes, mais avec le code moindre.
C'est ce que je veux savoir, est-il possible d'utiliser AutoMapper sans la réflexion? Ou connaissez-vous un autre outil de cartographie qui ne l'utilise pas? – Filip
Oui, j'ai créé une classe d'aide comme vous le suggérez, mais si vous avez beaucoup de DataContract que vous voulez mapper avec les classes Entity Framework, c'est beaucoup de travail lorsque vous ajoutez une colonne dans la base de données. – Filip
Vous pouvez utiliser [T4 Templates] (http://www.hanselman.com/blog/T4TextTemplateTransformationToolkitCodeGenerationBestKeptVisualStudioSecret.aspx) pour générer le code pour la conversion d'assistance ci-dessus et pour les DataContracts. Son assez simple commence vraiment avec un exemple de base, c'est comme ASP.NET inline scripting. –