Delegate ParseErrorCallback

ParseErrorCallback delegate

Represents a method callback to handle parse errors that can happen when reading xml data.

public delegate object ParseErrorCallback(object sender, ParseErrorArgs args);
ParameterTypeDescription
senderObjectthe source object of the parsing error.
argsParseErrorArgsthe instance of the ParseErrorArgs class that contains the event data.

Return Value

the coerced value to set to the specified sender object.

Examples

Shows how to read a project from a stream with XML file with invalid characters.

public static void LoadProjectFromFile(string pathToModifiedXml)
{
    // open the file which contains XML with broken timespans
    var project = new Project(pathToModifiedXml, CustomDurationHandlerForFile2);
    Console.WriteLine(project.Get(Prj.Name));
}

public static object CustomDurationHandlerForFile2(object sender, ParseErrorArgs args)
{
    var regex = new Regex("[*]{2}(\\d+)Hrs(\\d+)Mins(\\d+)Secs[*]{2}");
    if (args.FieldType != typeof(TimeSpan))
    {
        throw args.Exception;
    }

    Console.WriteLine("Object field: {0}, Object field type: {1}, Invalid value: {2}", args.FieldName, args.FieldType, args.InvalidValue);
    var duration = regex.Replace(args.InvalidValue, "PT$1H$2M$3S");
    var newValue = Duration.ParseTimeSpan(duration);
    Console.WriteLine("New value : {0}", newValue);
    return newValue;
}

See Also