1
我剛剛開始玩Josh Close的CsvHelper組件。但是我還沒有完全理解映射的概念。我有一類Order
,看起來像這樣:如何使用CsvHelper將IList <T>寫入csv文件?
public class Order
{
public int Id { get; set; }
public IList<Address> Addresses { get; set; }
}
其中Address
看起來是這樣的:
public class Address
{
public string Name { get; set; }
public string City { get; set; }
}
現在,我想這些類寫入csv文件。示例輸出可能是這樣的:
Order.Id;Order.Address.Name;Order.Address.City
1;"Bob Miller";"London"
我有兩個映射類OrderMap
和AddressMap
:
public sealed class OrderMap : CsvClassMap<Order>
{
public OrderMap()
{
Map (m => m.Id);
Map (m => m.Addresses).Index (0);
}
}
public sealed class AddressMap : CsvClassMap<Address>
{
public AddressMap()
{
Map (m => m.Name);
Map (m => m.City);
}
}
但是,這將產生以下輸出:
Id,Addresses
1,CsvHelperClassMappingTest.Address
所以,我是什麼在這裏失蹤?
建議的解決方案有效。任何人都可以確認'CsvClassMap'和自動映射僅適用於閱讀目的嗎? –
我對於僅用於閱讀的'CsvClassMap'顯然是錯誤的。正如你可以看到在[這個測試文件(https://github.com/JoshClose/CsvHelper/blob/master/src/CsvHelper.Tests/CsvWriterMappingTests.cs),它們用於書寫,但我不知道的使用規則。我仍然相信投射到平面物體更簡單,更直接。 –