我想要在两个类之间进行映射:
它会正确地返回一个包含值的列表。然而:
public class A {
public IEnumerable<C> someList
}
并且
public class B {
public RepeatedField<D> someList
}
RepeatedField是来自Google.Protobuf.Collections的一个处理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类的一个实例,但是实例B内部的列表为空。我该如何解决这个问题?
List<string>
映射到RepeatedField<string>
,其中一个列表项为null
,但这是RepeatedField<string>
对象的限制,而不是转换代码的限制,我不想代表其他人决定如何处理它。你能在DotNetFiddle上提供一个复现案例吗?这样我就可以改进我的答案。 - ProgrammingLlama