我希望能夠映射到IFoo.IBar.Name 而不是創建IBar自己類型的具體對象。 在CreateMap級別使用代理很容易:Mapper.CreateMap<Person, IFoo>()
,但是如何實現自定義內部接口類型成員?Automapper - 映射到Interface類型屬性而不創建具體類
public class Test
{
[Fact]
public void MapToInnerInterface()
{
const int id = 1;
const string name = "Peter";
var person = new Person {Id = id, Name = name};
Mapper.CreateMap<Person, IFoo>()
.ForMember(dest => dest.Bar.Name, c => c.MapFrom(src => src.Name));
var mapResult = Mapper.Map<IFoo>(person);
Assert.Equal(id, mapResult.Id);
Assert.Equal(name, mapResult.Bar.Name);
}
}
public interface IFoo
{
int Id { get; set; }
IBar Bar { get; set; }
}
public interface IBar
{
string Name { get; set; }
}
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
}
這就是答案一直在尋找 - 還不能給予好評。非常感謝。 – asyncpro 2014-11-01 20:44:58