我已经做了相当多的谷歌搜索,我查看了AutoMapper维基,但我找不到As<>的定义方法在AutoMapper中。
我有一些猜测。我玩了一下。但我觉得我需要看一些文档。
我认为该方法的名称对于有效的谷歌搜索来说太普通了。
如果有人知道这个方法的文档在哪里(或者知道它的来龙去脉),请发布。
答案 0 :(得分:1)
映射重定向。以下测试证明了这一点:
[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);
}
}
答案 1 :(得分:0)
我仍然无法找到关于'As'方法的任何文档,但据我所知,这是一个映射重定向。
例如,此代码:
Mapper.CreateMap<SomethingFromWebService, ISomething>().As<Something>();
表示:对于此映射(ISomething
),请解析它As
和Something
。
注意:此question可以为此答案提供一些背景信息。