Отображение из коллекции <T>в коллекцию <T>по соглашению - PullRequest
0 голосов
/ 07 ноября 2019

Возможно ли сопоставить свойство типа Collection другому свойству типа Collection по соглашению без необходимости явно определять отображение?

class CollectionExample {
    public static void Example() {
        var config = new MapperConfiguration(cfg =>
        {
            cfg.CreateMap<Foo, FooDto>()
                //.ForMember(dest => dest.Items, member => member.MapFrom(src => src.Items))
            ;
        });
        var mapper = config.CreateMapper();

        var foo = new Foo() {
            Items =
            {
                new Foo(),
                new Foo(),
                new Foo()
            }
        };

        var fooDto = mapper.Map<Foo, FooDto>(foo);

        Debug.Assert(fooDto.Items.Count == foo.Items.Count, $"There are only {fooDto.Items.Count} items in the dto object but we expected {foo.Items.Count} items.");
    }

    class Foo {
        public Collection<Foo> Items { get; } = new Collection<Foo>();
    }

    class FooDto {
        public Collection<FooDto> Items { get; } = new Collection<FooDto>();
    }
}

Когда я раскомментируюForMember(..) это работает. Я что-то упустил для метода, основанного на соглашении?

1 Ответ

0 голосов
/ 07 ноября 2019

Вам нужен либо сеттер, либо MapFrom, в зависимости от того, что вы предпочитаете:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...