C# 将嵌套对象的特定属性写入CSV

C# 将嵌套对象的特定属性写入CSV,c#,csvhelper,C#,Csvhelper,我正在基于一个嵌套了另一个对象的对象编写一个CSV文件。我只想编写嵌套对象的特定属性,而不是所有属性 在下面的示例中,我希望的结果是只将用户对象的网络名称写入CSV文件,而不是网络名称和操作员ID。但是,在写入时,它将同时输出这两个名称。我可以为这个场景编写一个自定义定义映射,但我想知道是否可以指定要使用的特定属性 public sealed class InventoryDefinitionMap : CsvClassMap<InventoryItem> { public

我正在基于一个嵌套了另一个对象的对象编写一个CSV文件。我只想编写嵌套对象的特定属性,而不是所有属性

在下面的示例中,我希望的结果是只将用户对象的网络名称写入CSV文件,而不是网络名称和操作员ID。但是,在写入时,它将同时输出这两个名称。我可以为这个场景编写一个自定义定义映射,但我想知道是否可以指定要使用的特定属性

public sealed class InventoryDefinitionMap : CsvClassMap<InventoryItem>
{
    public InventoryDefinitionMap()
    {
        Map(m => m.inventoryId).Name("Inventory Id");
        Map(m => m.serialNumber).Name("Serial Number");
        References<UserDefinitionMap>(m => m.AssignedUser);
    }    
}

public sealed class UserDefinitionMap : CsvClassMap<User>
{
    public UserDefinitionMap()
    {
        Map(m => m.operatorId).Name("ID");
        Map(m => m.networkName).Name("Network Name");
    }
}

void WriteCSVFile(List<InventoryItem> Items)
    {
        using (TextWriter writer = File.CreateText(fileLoc))
        using(var Csv = new CsvWriter(writer))
        {
            Csv.Configuration.RegisterClassMap<InventoryItemDefinitionMap>();
            Csv.WriteHeader<InventoryItem>();

            foreach (Item I in Items)
            {
                Csv.WriteRecord(I);
            }
        }
    }
公共密封类清单定义映射:CsvClassMap
{
公共资源清册定义图()
{
Map(m=>m.inventoryId).Name(“库存Id”);
映射(m=>m.serialNumber).Name(“序列号”);
参考文献(m=>m.AssignedUser);
}    
}
公共密封类UserDefinitionMap:CsvClassMap
{
公共用户定义映射()
{
映射(m=>m.operatorId).Name(“ID”);
映射(m=>m.networkName).Name(“网络名”);
}
}
无效WriteCSVFile(列表项)
{
使用(TextWriter=File.CreateText(fileLoc))
使用(var Csv=新Csv编写器(编写器))
{
Csv.Configuration.RegisterClassMap();
Csv.WriteHeader();
foreach(项目中的项目I)
{
Csv.书面记录(I);
}
}
}