4

私はかなりの量のグーグルを実行し、AutoMapper wikiを調べましたが、AutoMapperでAs<>メソッドが何をするかの定義を見つけることができません。

私はいくつかの推測があります。少し遊んだことがあります。しかし、私はいくつかのドキュメントを見る必要があるように感じます。

メソッドの名前は、効果的なグーグルにはあま​​りにも一般的な言葉だと思います。

ドキュメントがこのメソッドのどこにあるかを知っている(またはその詳細を知っている)場合は、投稿してください。

4

2 に答える 2

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);

    }

}
于 2012-10-25T20:55:29.463 に答える
0

'As'メソッドに関するドキュメントはまだ見つかりませんでしたが、私が知る限り、これはマッピングのリダイレクトです。

たとえば、次のコードは次のとおりです。

Mapper.CreateMap<SomethingFromWebService, ISomething>().As<Something>();

手段:このマッピング( )では、それをISomething解決します。AsSomething

注:この質問は、この回答のコンテキストを少し提供することができます。

于 2012-10-25T19:38:43.143 に答える