【发布时间】:2019-06-25 00:16:24
【问题描述】:
我想在两个类之间进行映射:
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里面的列表是空的。我该如何解决这个问题?
【问题讨论】:
标签: c# list automapper ienumerable protobuf-csharp-port