我希望使用动态类型的对象来写入CSV文件。
我在CsvWriter.WriteObject方法内收到“ CsvHelper.CsvWriterException”,并显示以下消息:“没有映射类型'WpmExport.DynamicEntry'的属性。”
这是我尝试使用的类:
public class DynamicEntry : DynamicObject
{
private Dictionary<string, object> dictionary = new Dictionary<string, object>();
public override bool TryGetMember(
GetMemberBinder binder, out object result)
{
string name = binder.Name.ToLower();
return dictionary.TryGetValue(name, out result);
}
public override bool TrySetMember(
SetMemberBinder binder, object value)
{
dictionary[binder.Name.ToLower()] = value;
return true;
}
public override IEnumerable<string> GetDynamicMemberNames()
{
return dictionary.Keys.AsEnumerable();
}
}
有任何想法或可行的例子吗? http://joshclose.github.io/CsvHelper/上的文档暗示有可能,但未提供任何指导。
TIA
最佳答案
该功能尚不存在。您可以写dynamic
,但不能写DynamicObject
。您可以在此处查看有关主题的主题。 https://github.com/JoshClose/CsvHelper/issues/187
实施该功能后,我将使用其所在的版本来更新答案。
更新资料
此功能将在3.0中提供。您目前可以从NuGet试用3.0-beta。