diff --git a/Apewer/Apewer.csproj b/Apewer/Apewer.csproj
index 93e6e14..c62c723 100644
--- a/Apewer/Apewer.csproj
+++ b/Apewer/Apewer.csproj
@@ -7,7 +7,7 @@
Apewer
Apewer
Apewer
- 6.0.10
+ 6.0.11
diff --git a/Apewer/Web/WebUtility.cs b/Apewer/Web/WebUtility.cs
index b28e71b..ec2ef6c 100644
--- a/Apewer/Web/WebUtility.cs
+++ b/Apewer/Web/WebUtility.cs
@@ -5,6 +5,8 @@ using System.Text;
using System.Diagnostics;
using Apewer.Models;
using System.IO;
+using System.Collections;
+using Apewer.Source;
#if NETFX
using System.Web;
@@ -375,6 +377,57 @@ namespace Apewer.Web
#endif
}
+ /// 设置响应,当发生错误时设置响应。返回错误信息。
+ public static string Respond(ApiResponse response, IList list, bool lower = true, int depth = -1, bool force = false)
+ {
+ if (response == null) return "Response 对象无效。";
+
+ if (list == null)
+ {
+ var error = "列表对象无效。";
+ response.Error(error);
+ return error;
+ }
+
+ var json = Json.Parse(list, lower, depth, force);
+ if (json == null || !json.Available)
+ {
+ var error = "列表无法序列化。";
+ response.Error(error);
+ return error;
+ }
+
+ if (response.Data == null) response.Data = Json.NewObject();
+ response.Data.SetProperty("count", list.Count);
+ response.Data.SetProperty("list", Json.Parse(list, lower, depth, force));
+ return null;
+ }
+
+ /// 设置响应,当发生错误时设置响应。返回错误信息。
+ public static string Respond(ApiResponse response, Record record, bool lower = true)
+ {
+ if (response == null) return "Response 对象无效。";
+
+ if (record == null)
+ {
+ var error = "记录无效。";
+ response.Error(error);
+ return error;
+ }
+
+ var json = Json.Parse(record, lower);
+ if (json == null || !json.Available)
+ {
+ var error = "记录无法序列化。";
+ response.Error(error);
+ return error;
+ }
+
+ if (response.Data == null) response.Data = Json.NewObject();
+ response.Data.Reset(json);
+ return null;
+ }
+
#endregion
#region api
diff --git a/Apewer/_ChangeLog.md b/Apewer/_ChangeLog.md
index f5a5294..bc46ec5 100644
--- a/Apewer/_ChangeLog.md
+++ b/Apewer/_ChangeLog.md
@@ -5,6 +5,9 @@
### 最新提交
+### 6.0.11
+- 扩展方法 ApiResponse.Respond 支持返回错误信息。
+
### 6.0.10
- 修正 SafeKey 错误。
diff --git a/Apewer/_Extensions.cs b/Apewer/_Extensions.cs
index 047c2c9..9b41272 100644
--- a/Apewer/_Extensions.cs
+++ b/Apewer/_Extensions.cs
@@ -565,42 +565,11 @@ public static class Extensions
return target;
}
- ///
- ///
- ///
- ///
- ///
- ///
- public static void Respond(this ApiResponse @this, IList list, bool lower = true, int depth = -1, bool force = false)
- {
- if (@this == null) return;
-
- if (list == null)
- {
- @this.Error("获取失败。");
- return;
- }
-
- @this.Data.SetProperty("count", list.Count);
- @this.Data.SetProperty("list", Json.Parse(list, lower, depth, force));
- }
+ /// 设置响应,当发生错误时设置响应。返回错误信息。
+ public static string Respond(this ApiResponse @this, IList list, bool lower = true, int depth = -1, bool force = false) => WebUtility.Respond(@this, list, lower, depth, force);
- ///
- ///
- ///
- ///
- public static void Respond(this ApiResponse @this, Record record, bool lower = true)
- {
- if (@this == null) return;
-
- if (record == null)
- {
- @this.Error("获取失败。");
- return;
- }
-
- @this.Data.Reset(Json.Parse(record, lower));
- }
+ /// 设置响应,当发生错误时设置响应。返回错误信息。
+ public static string Respond(this ApiResponse @this, Record record, bool lower = true) => WebUtility.Respond(@this, record, lower);
#endif