2014-06-09 31 views
2

我想在我的CSV輸出中包含子類的值。子類包含幾個指示可用操作的布爾值。用csvHelper序列化子類

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類的價值?將它們添加到映射會導致「屬性」布爾CanCheckIn'未定義爲類型'XYZ.ContentItem'「錯誤。

這不起作用:

 Map(m => m.Actions.CanCheckIn); 
     Map(m => m.Actions.CanCheckOut); 

回答

5

我想通了。爲了孩子類的成員正確映射,我需要使用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