我有一个 FileHelpers 记录,其属性标记为[FieldOptional]
. 我明白这可能需要该行的其余属性是可选的。尽管可能仍然可以解析该行的其余部分,但它可能会变得更加困难。
但如果我的下一个属性被标记为[FieldInNewLine]
,FileHelpers 仍然希望它是[FieldOptional]
。但是,我认为不要求此属性(以及下一个属性)是可选的会很容易(可能更容易)。
所以有了这段代码
[FixedLengthRecord(FixedMode.AllowLessChars)]
public class SomeRecord
{
[FieldFixedLength(10)][FieldTrim(TrimMode.Right)]
public string S1;
[FieldOptional][FieldFixedLength(10)][FieldTrim(TrimMode.Right)]
public string S2;
[FieldInNewLine][FieldFixedLength(10)][FieldTrim(TrimMode.Right)]
public string S3;
}
我收到一条FileHelpers.BadUsageException
消息
字段:S2 必须标记为可选,因为前一个字段被标记为可选。(尝试将 [FieldOptional] 添加到 S2)
有谁知道原因,为什么需要这样做?(虽然代码不是真正的代码,异常消息确实错误地引用了错误的属性,但我没有编造。)
PS:我使用来自 NuGet 的 2.9.9.0