我想在我的 CSV 输出中包含子类的值。子类包含几个指示可用操作的 bool 值。
public class AllowedActions {
public bool CanCheckIn { get; set; }
public bool CanCheckOut { get; set; }
}
public class ContentItem {
public AllowedActions Actions { get; set; }
public Guid? ContentTypeId { get; set; }
}
我能否创建一个包含 ContentItem 属性和 AllowedAction 类值的类映射?将它们添加到 map 会导致“未为类型‘XYZ.ContentItem’定义属性‘Boolean CanCheckIn’”错误。
这行不通:
Map(m => m.Actions.CanCheckIn);
Map(m => m.Actions.CanCheckOut);
最佳答案
我想通了。为了正确映射子类的成员,我需要使用 References
而不是 Map
,并提供一个单独的映射对象,如下所示:
References<AllowedActionsClassMap>(m => m.Actions);
...
public sealed class AllowedActionsClassMap: CsvClassMap<AllowedActions>
{
public AllowedActionsClassMap()
{
Map(m => m.CanCheckIn);
Map(m => m.CanCheckOut);
}
}
更多信息在这里:CsvHelper Mapping
关于c# - 使用 csvHelper 序列化子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24113449/