代码之家  ›  专栏  ›  技术社区  ›  Arnis Lapsa

强制运算符?

  •  4
  • Arnis Lapsa  · 技术社区  · 14 年前

    我做了这个测试:

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

    它抛出了一个有点奇怪的异常:

    测试“unit.web.bootstrap.automaprefacts.everythingismappedjustfine”失败:
    System.InvalidOperationException:未定义强制运算符
    在类型“System.Void”和“System.Object”之间。
    在System.Linq.Expressions.Expression.GetUserDefined胁迫行(ExpressionType胁迫类型、表达式表达式、类型ConvertToType)

    在automapper.delegateFactory.createget(methodinfo方法)

    不幸的是,我无法在更小的规模上复制它,也无法搞清楚到底发生了什么。

    什么是强制运算符?


    This 可能有用。但我无法提取和隐藏必要的信息位。

    1 回复  |  直到 8 年前
        1
  •  5
  •   superjos    8 年前

    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 { }
    }