Automapper generi c источник к известной проблеме распознавателя цели - PullRequest
0 голосов
/ 24 апреля 2020

Прошло много времени с тех пор, как я использовал automapper, но я почти уверен, что моя ситуация должна быть возможной.

Настройка

Я создал следующее конфигурация отображения:

var map = cfg.CreateMap<TSource, Structure>();

Так что в моей ситуации источником является обобщенный тип c (неизвестно), а целевым типом является Структура (известна).

Возможная опция для TSource Тип может быть:

public class DataChannel
    {
        public string Id { get; set; }
        public string Description { get; set; }
        public string Ean { get; set; }
        public DateTimeOffset ValidFrom { get; set; }
        public bool IsManual { get; set; }
        public string Type { get; set; }
        public string Unit { get; set; }
        public string Address { get; set; }
        public string BuildingId { get; set; }
    }

Целевой объект Structure выглядит следующим образом:

public class Structure : IStructure
    {
        public Structure()
        {
            Children = new List<Structure>();
            Properties = new List<StructureProperty>();
        }
        public int Id { get; set; }

        public ICollection<StructureProperty> Properties { get; set; }

        public List<Structure> Children { get; set; }
    }

Ситуация

Например, я хотел бы строковые свойства «Unit» и «Type», добавляемые в качестве объекта StructureProperty в коллекцию Properties объекта Structure.

map.ForMember(c => c.Properties, m => m.MapFrom<StructurePropertyResolver<TSource>>());

Как это можно сделать?

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