Я до сих пор не знаю, что именно является оператором принуждения, но по крайней мере - Я решил свою проблему нашел причину.
После некоторой отладки автомата удалось воспроизвести проблему:
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 { }
}
Как оказалось, довольно просто - в источнике есть метод, который называется так же, как и свойство назначения.