C# 如何使用FileHelper库获取分隔符数

C# 如何使用FileHelper库获取分隔符数,c#,filehelpers,file-processing,fileparsing,C#,Filehelpers,File Processing,Fileparsing,如果记录在一行中没有预期数量的分隔符,使用FileHelper库是否有方法获取异常 另一个问题是,如果某个特定字段(例如名称)的长度超过预期长度,是否有办法获得异常 若我将name设置为maxLength 30,若它大于30,我会得到一个异常 或者字段根本不等于预期长度?如果记录在一行中没有预期的分隔符数,则获取异常 如果行中没有足够/过多的字段,则默认FileHelpers行为会引发异常,因此无需执行任何特殊操作来获取异常: [DelimitedRecord(",")] public clas

如果记录在一行中没有预期数量的分隔符,使用FileHelper库是否有方法获取异常

另一个问题是,如果某个特定字段(例如名称)的长度超过预期长度,是否有办法获得异常

若我将name设置为maxLength 30,若它大于30,我会得到一个异常

或者字段根本不等于预期长度?

如果记录在一行中没有预期的分隔符数,则获取异常 如果行中没有足够/过多的字段,则默认FileHelpers行为会引发异常,因此无需执行任何特殊操作来获取异常:

[DelimitedRecord(",")]
public class Test
{
    public int SomeInt { get; set; }
    public string SomeString { get; set; }
    public int SomeInt1 { get; set; }

    public override string ToString() =>
        $"{SomeInt} - {SomeString} - {SomeInt1}";
}


var result = new FileHelperEngine<Test>()
    .ReadString(@"123,That's the string")
    .Single();
Console.WriteLine(result);

var result=new FileHelperEngine()
.ReadString(@“123,这是字符串,456”)
.Single();
控制台写入线(结果);
var context=newvalidationcontext(结果,serviceProvider:null,items:null);
var results=新列表();
var isValid=Validator.TryValidateObject(结果、上下文、结果、validateAllProperties:true);
如果(!isValid)
{
Console.WriteLine(“无效”);
foreach(结果中的var validationResult)
{
Console.WriteLine(validationResult.ErrorMessage);
}
} 
您将获得以下输出

无效

字段SomeString必须是最大长度为5的字符串

[DelimitedRecord(",")]
public class Test
{
    public int SomeInt { get; set; }
    [StringLength(maximumLength: 5)]
    public string SomeString { get; set; }
    public int SomeInt1 { get; set; }

    public override string ToString() =>
        $"{SomeInt} - {SomeString} - {SomeInt1}";
}
var result = new FileHelperEngine<Test>()
    .ReadString(@"123,That's the string, 456")
    .Single();
Console.WriteLine(result);

var context = new ValidationContext(result, serviceProvider: null, items: null);
var results = new List<ValidationResult>();
var isValid = Validator.TryValidateObject(result, context, results, validateAllProperties: true);
if (!isValid)
{
    Console.WriteLine("Not valid");
    foreach (var validationResult in results)
    {
        Console.WriteLine(validationResult.ErrorMessage);
    }
}