FileHelpers库可以编写包含可空字段的类以及读取它们吗?

now*_*ast 5 c# filehelpers

我正在使用FileHelpers库的2.0版,它被记录为能够处理.NET 2.0 Nullable类型.

我正在使用文档中示例中给出的代码:

[DelimitedRecord("|")]   
public class Orders   
{   
    public int OrderID;   

    public DateTime? OrderDate;   

    [FieldConverter(ConverterKind.Date, "ddMMyyyy")]     
    public DateTime? RequiredDate;   

    public int? ShipVia;   
}   
Run Code Online (Sandbox Code Playgroud)

使用FileHelperEngine,我可以成功读入一个没有OrderDate,RequiredDate或ShipVia字段值的文件.该文件看起来像:

1 |||

但是,我无法将生成的Orders []写出到文件中 - 库会抛出NullReferenceException,堆栈跟踪如下:

位于FileHelpers.Field上的FileHelpers.FieldBase.BaseFieldString(Object fieldValue)中的FileHelpers.FieldBase.AssignToString(StringBuilder sb,Object fieldValue)位于FileHelpers的FileHelpers.ConvertHelpers.CultureConverter.FieldToString(Object from) .RecordInfo.RecordToString(对象记录)在FileHelpers.FileHelperEngine 1.WriteStream(TextWriter writer, IEnumerable1记录,Int32 maxRecords)在FileHelpers.FileHelperEngine 1.WriteFile(String fileName, IEnumerable1记录,Int32 maxRecords)在FileHelpers.FileHelperEngine 1.WriteFile(String fileName, IEnumerable1记录)在TestingFileHelpers.Program.Main(String [] args)在C:位于System.AppDomain.ExecuteAssembly(String assemblyFile,Evidence assemblySecurity,String [] args)的System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly,String [] args)中的\ dev\src\TestingFileHelpers\TestingFileHelpers\Program.cs:第19行System.Threading.ExecutionContext.Run上的System.Threading.ThreadHelper.ThreadStart_Context(Object state)中的.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()(Executi)System.Threading.ThreadHelper.ThreadStart()上的System.Threading.ExecutionContext.Run(ExecutionContext executionContext,ContextCallback回调,对象状态)中的onContext executionContext,ContextCallback回调,Object state,Boolean ignoreSyncCtx)

我敢肯定我必须在这里遗漏一些东西,但我无法弄清楚它是什么.任何帮助非常感谢.

Mar*_*eli 3

您可以尝试使用该库的最新版本吗:

http://teamcity.codebetter.com/viewLog.html?buildId=21768&tab=artifacts&buildTypeId=bt65 (以访客身份登录)

如果该版本修复了错误,只需在评论中告诉我,我将向库添加一个测试用例以确保其正常工作