Устранена проблема с конфигурацией Automapper, попытка доступа к методу не удалась - PullRequest
0 голосов
/ 02 сентября 2018

Я пытаюсь сопоставить мою модель домена для viewModels в моем приложении MVC MVVM. Вот код моей конфигурации Auto Mapper

public class AutoMapperConfiguration
{
    public static void Configure()
    {
        Mapper.Initialize(x =>
        {
            x.AddProfile<BookStoreMappingProfile>();
        });
    }
}

Профиль отображения:

public class BookStoreMappingProfile: Profile
{
    public static MapperConfiguration InitializeAutoMapper()
    {
        MapperConfiguration config = new MapperConfiguration(cfg =>
        {
            cfg.CreateMap<Book, BookListViewModel>();
        });

        return config;
    }
}

Global.asax

    //AutoMapper Configuration
    AutoMapperConfiguration.Configure();

И мой код контроллера:

    public ActionResult Index()
    {
        IEnumerable<Book> Books = _bookService.GetAllBooks().ToList();

        IEnumerable<BookListViewModel> BookListViewModel = Mapper.Map<IEnumerable<Book>, IEnumerable<BookListViewModel>>(Books);
        return View(BookListViewModel);
    }

BookListViewModel.cs

public class BookListViewModel
{
    [DisplayName("Name")]
    public string Name { get; set; }
    [DisplayName("ISBN")]
    public string ISBN { get; set; }
    [DisplayName("Price")]
    public double Price { get; set; }
    [DisplayName("Rating")]
    public double Rating { get; set; }
    [DisplayName("Publisher")]
    public string Publisher { get; set; }
}

Book.cs

public class Book
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string ISBN { get; set; }
    public double Price { get; set; }
    public double Rating { get; set; }
    public string Publisher { get; set; }
    public DateTime YearPublished { get; set; }
    public string Edition { get; set; }
    public int CategoryId { get; set; }
    public virtual Category Categories { get; set;}
}

Когда я пытаюсь получить свой метод Index в контроллере, выдается это исключение:

Попытка с помощью метода 'AutoMapper.MapperConfiguration.FindClosedGenericTypeMapFor (AutoMapper.TypePair, AutoMapper.TypePair)' получить доступ к методу 'AutoMapper.MapperConfiguration + <> c__DisplayClass69_0.b__0' failMap.

Это исключение доступа к методу, но я не знаю, как решить проблему. Кто-нибудь может дать мне понимание того, что там происходит внутри?

1 Ответ

0 голосов
/ 10 сентября 2018

У меня тоже такая же проблема, и я использую .NET 4.5.

После некоторых поисков, следов и ошибок я обнаружил, что проблема связана с System.ValueTuple. Итак, я опустился до Automapper 6.22 (который не зависит от System.ValueTuple) и теперь я могу его настроить. и все работает нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...