AutoMapper не в тот тип мэппит - C#

Узнай цену своей работы

Формулировка задачи:

Всем пример. Возникла проблема с Автомэпером, а точнее с мэпом наследуемого на базовый тип.
class A{
   public int x{get;set;}
}
 
class B : A{
   
}
 
        public static void Main() {
            Mapper.Initialize(cfg => cfg.CreateMissingTypeMaps = true);
            var b = new B();
            A a1 = Mapper.Map<A>(b);
            A a2 = Mapper.Map<B, A>(b);
            Console.WriteLine(typeof(a1));  
            Console.WriteLine(typeof(a2));
        }
Почему в обоих случаях выводится тип B ? Как сделать чтобы тип оказался А? Кстати в обратную сторону все корректно работает.

Решение задачи: «AutoMapper не в тот тип мэппит»

textual
Листинг программы
namespace ConsoleApplication12
{
    using System;
    using AutoMapper;
 
    internal class A
    {
        public int X { get; set; }
    }
 
    internal class B : A
    {
    }
 
    internal class Program
    {
        private static void Main()
        {
            Mapper.Initialize(cfg => { cfg.CreateMap<B, A>(); });
            var b = new B();
            A a1 = Mapper.Map<A>(b);
            A a2 = Mapper.Map<B, A>(b);
            Console.WriteLine(a1.GetType());
            Console.WriteLine(a2.GetType());
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.143 из 5