Я использую версию 2.0 библиотеки FileHelpers, которая документирована как способная обрабатывать типы .NET 2.0, допускающие значение NULL.
Я использую код, приведенный в примере из документации:
[DelimitedRecord("|")]
public class Orders
{
public int OrderID;
public DateTime? OrderDate;
[FieldConverter(ConverterKind.Date, "ddMMyyyy")]
public DateTime? RequiredDate;
public int? ShipVia;
}
С помощью FileHelperEngine я могу успешно читать файл, в котором нет значений для полей OrderDate, RequiredDate или ShipVia. Файл выглядит так:
1 | ||
Однако,
в FileHelpers.FieldBase.BaseFieldString (Object fieldValue)
в FileHelpers.DelimitedField.CreateFieldString (StringBuilder sb, Object fieldValue)
в FileHelpers.FieldBase.AssignToString (StringBuilder sb, Object fieldValue)
в FileHelpers.RecordInfo.RecordToString (запись объекта)
в FileHelpers.FileHelperEngine 1.WriteStream (писатель TextWriter, IEnumerable
1 записи, Int32 maxRecords)
в FileHelpers.FileHelperEngine 1.WriteFile (String fileName, IEnumerable
1 записи, Int32 maxRecords)
в FileHelpers.FileHelperEngine 1.WriteFile (String fileName, IEnumerable
1 записей)
в TestingFileHelpers.Program.Main (String [] args) в C: \ dev \ src \ TestingFileHelpers \ TestingFileHelpers \ Program.cs: строка 19
в System.AppDomain._nExecuteAssembly (сборка RuntimeAssembly, String [] args)
в System.AppDomain.ExecuteAssembly (String assemblyFile, Evidence assemblySecurity, String [] args)
в Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly ()
в System.Threading.ThreadHelper.ThreadStart_Context (состояние объекта)
в System.Threading.ExecutionContext.Run (контекст выполнения ExecutionContext, обратный вызов ContextCallback, состояние объекта, логическое значение ignoreSyncCtx)
в System.Threading.ExecutionContext.Run (контекст выполнения ExecutionContext, обратный вызов ContextCallback, состояние объекта)
в System.Threading.ThreadHelper.ThreadStart ()
Я уверен, что мне что-то здесь не хватает, но я не могу понять, что это такое. Любая помощь очень ценится.