Automapper exception: “Missing type de carte de configuration ou de non prise en charge de la cartographie.”

Je suis en train d'utiliser Ninject dans un ASP.NET MVC 5 application qui utilise AutoMapper pour la cartographie de la Modèle à la Vue du Modèle, et vice-versa.
Malheureusement je reçois un message d'erreur indiquant que le type de la carte de configuration est manquant.

J'ai créé un résolveur de dépendance Ninject:

namespace MyNamespace.Infrastructure
{
    public class NinjectDependencyResolver: IDependencyResolver
    {
        private IKernel kernel;

        public NinjectDependencyResolver(IKernel kernelParam)
        {
            kernel = kernelParam;
            AddBindings();
        }

        public object GetService(Type serviceType)
        {
            return kernel.TryGet(serviceType);
        }

        public IEnumerable<object> GetServices(Type serviceType)
        {
            return kernel.GetAll(serviceType);
        }

        private void AddBindings()
        {
            kernel.Bind<IMyBLL>().To<MyBLL>();
        }
    }
}

Je l'utilise pour créer un contrôleur:

namespace MyNamespace.Controllers
{
    [Authorize]
    public class HomeController : Controller
    {
        private IMyBLL _myBLL;

        public HomeController(IMyBLL myBLLParam)
        {
            _myBLL = myBLLParam;
        }

        public PartialViewResult AddRecord()
        {
            return PartialView(new AddRecordViewModel());
        }

        [HttpPost]
        public void AddRecord(AddRecordViewModel recordViewModel)
        {
            var record = Mapper.Map<Record>(recordViewModel);

            _myBLL.AddRecord(record, User.Identity.Name);
        }
    }
}

Mondiale.asax:

namespace MyNamespace.WebApplication
{
    public class MvcApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            ApplicationUserManager.StartupAsync();
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
            AutoMapperWebConfiguration.Configure();
        }
    }
}

Cela appelle la AutoMapper configuration:

namespace MyNamespace.WebApplication.Infrastructure
{
    public static class AutoMapperWebConfiguration
    {
        public static void Configure()
        {
            Mapper.Initialize(cfg => cfg.AddProfile(new RecordProfile()));
        }
    }

    public class RecordProfile : Profile
    {
        protected override void Configure()
        {
            Mapper.CreateMap<AddRecordViewModel, Record>().ReverseMap();
        }
    }
}

Lorsque je l'exécute j'obtiens le message d'erreur suivant:

Missing type map configuration or unsupported mapping.

Mapping types:
AddRecordViewModel -> Record
 MyNamespace.WebApplication.ViewModels.Home.AddRecordViewModel -> MyNamespace.Model.Record

 Destination path:
 Record

 Source value:
 MyNamespace.WebApplication.ViewModels.Home.AddRecordViewModel

Me manque quelque chose.
Il a bien fonctionné avant, je les Ninject solveur de dépendances.
Maintenant, il ne semble pas trouver les mappages.


Edit:

Si j'ajoute la Cartographie Création directement à la méthode de contrôleur cela fonctionne:

[HttpPost]
public void AddRecord(AddRecordViewModel recordViewModel)
{
    Mapper.CreateMap<AddRecordViewModel, Record>().ReverseMap();
    var record = Mapper.Map<Record>(recordViewModel);

    _myBLL.AddRecord(record, User.Identity.Name);
}

La cartographie elle-même et les modèles et les modèles de vue ne semble pas être le problème. Je suppose que le programme en quelque sorte de ne pas trouver les mappages.

Même si j'appelle l'Auto Mappeur Web de Configuration de la méthode du contrôleur cela fonctionne:

public void AddRecord(AddRecordViewModel recordViewModel)
{
    Infrastructure.AutoMapperWebConfiguration.Configure();

    var record = Mapper.Map<Record>(recordViewModel);

    _myBLL.AddRecord(record, User.Identity.Name);
}
Vous avez défini un AddRecordViewModel -> Enregistrer, mais pas l'inverse. Vous avez besoin d'une deuxième cartographie pour les autres.
J'ai maintenant ajouté la deuxième cartographie. Malheureusement, je reçois toujours le même message d'erreur. Il semble que le programme ne trouve pas la correspondance.
Est-ce que votre Record avez des biens virtuels?
J'ai exactement ce problème. J'ai d'autres cartes qui fonctionnent avec le Queryable extensions (projet), mais pour une autre carte créée continue à dire qu'il n'y est pas de cartographie, même si le MapperConfiguration clairement crée une carte pour les deux types. Tous dans le même projet en cours d'exécution sur la même machine. S'il vous plaît aider!
Wow, je ne savais pas que mapperConfig.CreateMapper() a été la création de la SEULE instance qui a les mappages! J'ai utiliser l'injection pour obtenir que mappeur, je ne peux pas tout simplement utiliser Automapper.Mappeur.De la carte...

OriginalL'auteur Alexander | 2015-01-23