CSV帮助程序自动映射列表对象



我目前正在尝试让我的CSV Helper AutoMap类为List<gt;我的另一个班级的财产。出于某种原因,自动映射功能无法识别此属性,因此它永远不会像我希望的那样写入CSV文件的末尾。有什么想法吗?是否必须手动将其写入CSV?请告诉我。谢谢

编辑:我的列表<gt;由于某些原因,这里也返回为null,因此它不会通过自动映射进行编写。

public class TemplateViewModelMap<TViewModel> : ClassMap<TViewModel> where TViewModel : class
{
public TemplateViewModelMap()
{
AutoMap(CultureInfo.InvariantCulture);
// Use Reflection to check property for complex object type to remove/ignore from ClassMap.
PropertyInfo[] properties = typeof(TViewModel).GetProperties();
foreach (PropertyInfo property in properties)
{
string fieldPropertyName = "Fields";
if (property.Name.Equals(fieldPropertyName) == true)
{
MemberReferenceMap item = ReferenceMaps.Find(property);
ReferenceMaps.Add(item);
}
}
}

您是否试图映射一个有字段而没有属性的类?在这种情况下,您可以将配置设置为MemberTypes.Fields

void Main()
{   
var fooList = new List<Foo>()
{
new Foo { Id = 1, Name = "first" },
new Foo { Id = 2, Name = "second" }
};

var config = new CsvConfiguration(CultureInfo.InvariantCulture)
{
MemberTypes = CsvHelper.Configuration.MemberTypes.Fields
};

using (var csv = new CsvWriter(Console.Out, config))
{
csv.WriteRecords(fooList);
}

}
public class Foo 
{
public int Id;
public string Name;
}

相关内容

  • 没有找到相关文章

最新更新