我已经进行了大量的谷歌搜索,并且查看了 AutoMapper wiki,但我找不到 As<> 方法在 AutoMapper 中的作用的定义。
我有一些猜测。我玩过它一点。但我觉得我需要查看一些文档。
我认为该方法的名称对于有效的谷歌搜索来说太普通了。
如果有人知道此方法的文档在哪里(或知道它的来龙去脉),请发布。
我已经进行了大量的谷歌搜索,并且查看了 AutoMapper wiki,但我找不到 As<> 方法在 AutoMapper 中的作用的定义。
我有一些猜测。我玩过它一点。但我觉得我需要查看一些文档。
我认为该方法的名称对于有效的谷歌搜索来说太普通了。
如果有人知道此方法的文档在哪里(或知道它的来龙去脉),请发布。
它是映射重定向。下面的测试证明了这一点:
[TestFixture]
public class DestinationTypePolymorphismTest
{
public class Customer
{
public int Id { get; set; }
public string Name { get; set; }
}
public class CustomerStubDTO
{
public int Id { get; set; }
}
public class CustomerDTO : CustomerStubDTO
{
public string Name { get; set; }
}
public class Order
{
public Customer Customer { get; set; }
}
public class OrderDTO
{
public CustomerStubDTO Customer { get; set; }
}
[Test]
public void Mapper_Should_Allow_Overriding_Of_Destination_Type()
{
var order = new Order() { Customer = new Customer() { Id = 1, Name = "A" } };
Mapper.CreateMap<Order, OrderDTO>();
Mapper.CreateMap<Customer, CustomerDTO>();
Mapper.CreateMap<Customer, CustomerStubDTO>().As<CustomerDTO>();
var orderDto = Mapper.Map<Order, OrderDTO>(order);
var customerDto = (CustomerDTO)orderDto.Customer;
Assert.AreEqual("A", customerDto.Name);
Assert.AreEqual(1, customerDto.Id);
}
}
我仍然无法找到有关“As”方法的任何文档,但据我所知,这是一个映射重定向。
例如,这段代码:
Mapper.CreateMap<SomethingFromWebService, ISomething>().As<Something>();
意思是:对于这个 Mapping ( ISomething
) 解决它As
一个Something
.
注意:这个问题可以为这个答案提供一些背景信息。