我希望使用动态类型的对象来写入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。

10-08 04:54