Я хочу сопоставить два класса:
public class A {
public IEnumerable<C> someList
}
и
public class B {
public RepeatedField<D> someList
}
, где RepeatedField - это класс из Google.Protobuf.Collections, который обрабатывает данные gRPC.
РЕДАКТИРОВАТЬ: Как выясняется, способ, которым gRPC создает классы с помощью своего прототипа, совсем не похож на создание класса, подобного B. Смотрите мой ответ.
Я создаю конфигурацию Automapper MappingConfiguration так:
return new MapperConfiguration(cfg =>
{
cfg.CreateMap<C, D>().ReverseMap();
cfg.CreateMap<A, B>().ReverseMap();
});
и затем он регистрируется через класс запуска ASP.NET.
Если я делаю что-то подобное в другом классе
A instanceA; // assume A's list has values inside
var listofD = this.mapper.Map<List<D>>(A.someList)
, он корректно возвращает список со значениями внутри.Однако:
A instanceA; // assume A's list has values inside
B instanceB = this.mapper.Map<B>(A);
возвращает экземпляр B, но список внутри instanceB пуст.Как мне это исправить?