Fix type conversion in the default pair deconstructor implementation (#618)

The code using the TypeConverter was written backwards (using `ConvertTo` instead of `ConvertFrom` and would thus throw an exception.
This commit is contained in:
Cédric Luthi
2021-11-22 15:07:58 +01:00
committed by GitHub
parent 19eb273813
commit 8fed3bc575
2 changed files with 40 additions and 7 deletions

View File

@ -19,9 +19,6 @@ namespace Spectre.Console.Cli
throw new ArgumentNullException(nameof(value));
}
var keyConverter = GetConverter(keyType);
var valueConverter = GetConverter(valueType);
var parts = value.Split(new[] { '=' }, StringSplitOptions.None);
if (parts.Length < 1 || parts.Length > 2)
{
@ -47,15 +44,16 @@ namespace Spectre.Console.Cli
}
}
return (Parse(keyConverter, keyType, stringkey),
Parse(valueConverter, valueType, stringValue));
return (Parse(stringkey, keyType),
Parse(stringValue, valueType));
}
private static object Parse(TypeConverter converter, Type type, string value)
private static object? Parse(string value, Type targetType)
{
try
{
return converter.ConvertTo(value, type);
var converter = GetConverter(targetType);
return converter.ConvertFrom(value);
}
catch
{