我想在两个类之间映射:
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 Startup 类注册。
如果我在另一个班级做这样的事情
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 内部的列表为空。我该如何解决?