From 77537a6634a942fb02a889f2f0b1fd620c771cd1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E5=9B=BD=E4=BC=9F?= <366193849@qq.com> Date: Tue, 23 Nov 2021 12:01:20 +0800 Subject: [PATCH] empty=>default T --- FastGithub.Configuration/ValueBinder.cs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/FastGithub.Configuration/ValueBinder.cs b/FastGithub.Configuration/ValueBinder.cs index 0ab0169..4e14778 100644 --- a/FastGithub.Configuration/ValueBinder.cs +++ b/FastGithub.Configuration/ValueBinder.cs @@ -69,9 +69,18 @@ namespace FastGithub.Configuration public override object? ConvertFrom(ITypeDescriptorContext? context, CultureInfo? culture, object value) { - return value is string stringVal && binders.TryGetValue(typeof(T), out var binder) - ? binder.Read(stringVal) - : base.ConvertFrom(context, culture, value); + if (value is string stringVal) + { + if (stringVal.Equals(string.Empty)) + { + return default(T); + } + else if (binders.TryGetValue(typeof(T), out var binder)) + { + return binder.Read(stringVal); + } + } + return base.ConvertFrom(context, culture, value); } public override object? ConvertTo(ITypeDescriptorContext? context, CultureInfo? culture, object? value, Type destinationType)