我使用自定义JsonValdiators来验证json文件。这是班级:
public class IntValueValidator : JsonValidator
{
public override bool CanValidate(JSchema schema)
{
return schema.Format == "intValue";
}
public override void Validate(JToken value, JsonValidatorContext context)
{
if (value.Type == JTokenType.Integer)
{
var inputString = (int)value;
if (inputString > 15)
{
context.RaiseError($"Int value too high, should be < 16 was {inputString}");
}
}
}
}
我想提出一个错误,说明错误发生在文件中的哪一行。目前传递给.IsValid()函数的错误列表中的LineNumber属性:
json.IsValid(_schema, out listOfErr)
总是空的。
架构:
_schema = generator.Generate(typeof(MyClass));
var settings = new JSchemaReaderSettings
{
Validators = new List<JsonValidator> { new IntValueValidator() }
};
_schema = JSchema.Parse(_schema.ToString(), settings);
任何想法如何访问Validate函数内的行号?