diff --git a/src/Volo.Abp.Settings/Volo.Abp.Settings.csproj.DotSettings b/src/Volo.Abp.Settings/Volo.Abp.Settings.csproj.DotSettings
new file mode 100644
index 0000000000..58ad6c8854
--- /dev/null
+++ b/src/Volo.Abp.Settings/Volo.Abp.Settings.csproj.DotSettings
@@ -0,0 +1,2 @@
+
+ CSharp71
\ No newline at end of file
diff --git a/src/Volo.Abp.Settings/Volo/Abp/Settings/SettingManagerExtensions.cs b/src/Volo.Abp.Settings/Volo/Abp/Settings/SettingManagerExtensions.cs
index 11aa6f05c2..d9f4f3950b 100644
--- a/src/Volo.Abp.Settings/Volo/Abp/Settings/SettingManagerExtensions.cs
+++ b/src/Volo.Abp.Settings/Volo/Abp/Settings/SettingManagerExtensions.cs
@@ -17,5 +17,15 @@ namespace Volo.Abp.Settings
StringComparison.OrdinalIgnoreCase
);
}
+
+ public static async Task GetAsync([NotNull] this ISettingManager settingManager, [NotNull] string name, T defaultValue = default)
+ where T : struct
+ {
+ Check.NotNull(settingManager, nameof(settingManager));
+ Check.NotNull(name, nameof(name));
+
+ var value = await settingManager.GetOrNullAsync(name);
+ return value?.To() ?? defaultValue;
+ }
}
}
\ No newline at end of file
diff --git a/src/Volo.Abp.Settings/Volo/Abp/Settings/SettingManagerSyncExtensions.cs b/src/Volo.Abp.Settings/Volo/Abp/Settings/SettingManagerSyncExtensions.cs
index da45dd2c1e..0a8c7b2981 100644
--- a/src/Volo.Abp.Settings/Volo/Abp/Settings/SettingManagerSyncExtensions.cs
+++ b/src/Volo.Abp.Settings/Volo/Abp/Settings/SettingManagerSyncExtensions.cs
@@ -19,5 +19,16 @@ namespace Volo.Abp.Settings
return AsyncHelper.RunSync(settingManager.GetAllAsync);
}
+
+ public static T Get([NotNull] this ISettingManager settingManager, [NotNull] string name, T defaultValue = default)
+ where T : struct
+ {
+ return AsyncHelper.RunSync(() => settingManager.GetAsync(name, defaultValue));
+ }
+
+ public static bool IsTrue([NotNull] this ISettingManager settingManager, [NotNull] string name)
+ {
+ return AsyncHelper.RunSync(() => settingManager.IsTrueAsync(name));
+ }
}
}