Question

Je suis arrivé ce test:

[Fact]
public void EverythingIsMappedJustFine(){
  new AutoMapperTask().Execute();
  Mapper.AssertConfigurationIsValid();
}

Il jette un peu étrange exception:

  

Test 'Unit.Web.Bootstrap.AutoMapperFacts.EverythingIsMappedJustFine' a échoué:
   System.InvalidOperationException: Aucun opérateur de contrainte est défini
   entre les types de System.Void 'et 'System.Object'.
   à System.Linq.Expressions.Expression.GetUserDefinedCoercionOrThrow (ExpressionType coercionType, expression d'expression, type convertToType)
  ...
  à AutoMapper.DelegateFactory.CreateGet (méthode MethodInfo)

Malheureusement -. Je ne pouvais pas reproduire ce à l'échelle plus petite et ne peut pas comprendre ce qui se passe exactement

Qu'est-ce que l'opérateur de la contrainte?


Cette pourrait être utile. Mais je ne pas extraire et abêtir bits d'information nécessaires.

Était-ce utile?

La solution

Je ne sais toujours pas ce qui est l'opérateur de la contrainte exactement, mais au moins -. Je résolu mon problème raison trouvés

Après un certain débogage automapper a pu reproduire le problème:

namespace mappertest
{
    using AutoMapper;
    using NUnit.Framework;

    [TestFixture]
    public class FooFacts
    {
        [Test]
        public void MapToFizz()
        {
            Mapper.Initialize(c => c.AddProfile(new FooProfile()));

            var foo = new Foo { Bar = "BarValue" };
            var fooModel = Mapper.Map<Foo, FooModel>(foo);

            Assert.AreEqual("BarValue", fooModel.Bar);
        }
    }

    public class FooProfile : Profile
    {
        protected override void Configure()
        {
            CreateMap<Foo, FooModel>();
        }
    }

    public class Foo
    {
        public string Bar { get; set; }
        public void Fizz() { }
    }

    public class FooModel
    {
        public string Bar { get; set; }
        public FizzModel Fizz { get; set; }
    }

    public class FizzModel { }
}

Très simple il se trouve -. Source a la méthode qui est nommée comme propriété de destination

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top