public override CustomVector ToInstance(IDictionary <string, object> value, ConverterSettings settings) { if (settings.TryGetMatchingConverter(typeof(float?), out MemberConverter converter)) { return(new CustomVector { X = (float?)converter.ConvertBack(value[nameof(CustomVector.X)], typeof(float?), settings), Y = (float?)converter.ConvertBack(value[nameof(CustomVector.Y)], typeof(float?), settings), Z = (float?)converter.ConvertBack(value[nameof(CustomVector.Z)], typeof(float?), settings), }); } return(new CustomVector { X = (float?)value[nameof(CustomVector.X)], Y = (float?)value[nameof(CustomVector.Y)], Z = (float?)value[nameof(CustomVector.Z)], }); }
public override IDictionary <string, object> ToDictionary(CustomVector value, ConverterSettings settings) { if (settings.TryGetMatchingConverter(typeof(float?), out MemberConverter converter)) { return(new Dictionary <string, object>(3) { { nameof(CustomVector.X), converter.Convert(999f, settings) }, { nameof(CustomVector.Y), converter.Convert(999f, settings) }, { nameof(CustomVector.Z), converter.Convert(null, settings) }, }); } return(new Dictionary <string, object>(3) { { nameof(CustomVector.X), 999f }, { nameof(CustomVector.Y), 999f }, { nameof(CustomVector.Z), null }, }); }