Skip to content

Commit 835df24

Browse files
committed
sealed
1 parent 0e48e9a commit 835df24

File tree

8 files changed

+23
-21
lines changed

8 files changed

+23
-21
lines changed

WebApiClient/Attributes/ParameterAttributes/PathQueryAttribute.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ public async Task BeforeRequestAsync(ApiActionContext context, ApiParameterDescr
5959
var fixUrl = uri.ToString().TrimEnd('?', '&', '/');
6060
var options = context.HttpApiConfig.FormatOptions.CloneChange(this.datetimeFormate);
6161
var keyValues = context.HttpApiConfig.KeyValueFormatter.Serialize(parameter, options);
62-
var targetUrl = new Uri(this.UseQuery(fixUrl, keyValues));
62+
var targetUrl = new Uri(this.UsePathQuery(fixUrl, keyValues));
6363

6464
context.RequestMessage.RequestUri = targetUrl;
6565
await ApiTask.CompletedTask;
@@ -71,11 +71,11 @@ public async Task BeforeRequestAsync(ApiActionContext context, ApiParameterDescr
7171
/// <param name="url">url</param>
7272
/// <param name="keyValues">键值对</param>
7373
/// <returns></returns>
74-
private string UseQuery(string url, IEnumerable<KeyValuePair<string, string>> keyValues)
74+
private string UsePathQuery(string url, IEnumerable<KeyValuePair<string, string>> keyValues)
7575
{
7676
foreach (var keyValue in keyValues)
7777
{
78-
url = this.UseQuery(url, keyValue);
78+
url = this.UsePathQuery(url, keyValue);
7979
}
8080
return url;
8181
}
@@ -86,7 +86,7 @@ private string UseQuery(string url, IEnumerable<KeyValuePair<string, string>> ke
8686
/// <param name="url">url</param>
8787
/// <param name="keyValue">键值对</param>
8888
/// <returns></returns>
89-
private string UseQuery(string url, KeyValuePair<string, string> keyValue)
89+
private string UsePathQuery(string url, KeyValuePair<string, string> keyValue)
9090
{
9191
var key = keyValue.Key;
9292
var value = keyValue.Value == null ? string.Empty : keyValue.Value;

WebApiClient/Attributes/ParameterAttributes/UrlAttribute.cs

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@
77
namespace WebApiClient.Attributes
88
{
99
/// <summary>
10-
/// 表示将参数值作为请求url的特性
10+
/// 表示将参数值作为请求url的特性
11+
/// 要求必须修饰于第一个参数
1112
/// 支持绝对或相对路径
12-
/// 一般放到第一个参数以防止将PathQuery的路径覆盖掉
1313
/// </summary>
1414
[AttributeUsage(AttributeTargets.Parameter, AllowMultiple = false, Inherited = true)]
15-
public class UrlAttribute : Attribute, IApiParameterAttribute
15+
public sealed class UrlAttribute : Attribute, IApiParameterAttribute
1616
{
1717
/// <summary>
1818
/// http请求之前
@@ -21,13 +21,18 @@ public class UrlAttribute : Attribute, IApiParameterAttribute
2121
/// <param name="parameter">特性关联的参数</param>
2222
/// <exception cref="ApiConfigException"></exception>
2323
/// <returns></returns>
24-
public virtual Task BeforeRequestAsync(ApiActionContext context, ApiParameterDescriptor parameter)
24+
public Task BeforeRequestAsync(ApiActionContext context, ApiParameterDescriptor parameter)
2525
{
2626
if (parameter.Value == null)
2727
{
2828
throw new ArgumentNullException(parameter.Name);
2929
}
3030

31+
if (parameter.Index > 0)
32+
{
33+
throw new ApiConfigException(this.GetType().Name + "必须修饰于第一个参数");
34+
}
35+
3136
var relative = new Uri(parameter.ToString(), UriKind.RelativeOrAbsolute);
3237
if (relative.IsAbsoluteUri == true)
3338
{

WebApiClient/Attributes/ReturnAttributes/AutoReturnAttribute.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ namespace WebApiClient.Attributes
1515
/// 支持返回xml或json转换对应类型
1616
/// 没有任何IApiReturnAttribute特性修饰的接口方法,将默认为AutoReturn修饰
1717
/// </summary>
18-
public class AutoReturnAttribute : ApiReturnAttribute
18+
public sealed class AutoReturnAttribute : ApiReturnAttribute
1919
{
2020
/// <summary>
2121
/// 获取异步结果

WebApiClient/DateTimeFormats.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
namespace WebApiClient
99
{
1010
/// <summary>
11-
/// 提供日期时间格式模板
11+
/// 提供一些日期时间格式模板
1212
/// </summary>
1313
public static class DateTimeFormats
1414
{

WebApiClient/FormatOptions.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ public FormatOptions()
5454
}
5555

5656
/// <summary>
57-
/// 如果新的日期时间格式有变化
57+
/// 当datetimeFormat不为null且有变化时
5858
/// 则克隆并使用新的datetimeFormat
5959
/// </summary>
6060
/// <param name="datetimeFormat">日期时间格式</param>
@@ -95,7 +95,7 @@ public static string CamelCase(string name)
9595

9696
var hasNext = (i + 1 < charArray.Length);
9797
if (i > 0 && hasNext && !char.IsUpper(charArray[i + 1]))
98-
{
98+
{
9999
if (char.IsSeparator(charArray[i + 1]))
100100
{
101101
charArray[i] = Char.ToLowerInvariant(charArray[i]);

WebApiClient/HttpApiConfig.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ namespace WebApiClient
1010
{
1111
/// <summary>
1212
/// 表示Http接口的配置项
13-
/// 更多的配置项,可以继承此类
1413
/// </summary>
1514
public class HttpApiConfig : IDisposable
1615
{

WebApiClient/HttpApiRequestMessage.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@ public class HttpApiRequestMessage : HttpRequestMessage
2424
/// </summary>
2525
/// <param name="keyValue">参数</param>
2626
/// <exception cref="ApiConfigException"></exception>
27-
public void AddUrlQeury(IEnumerable<KeyValuePair<string, string>> keyValue)
27+
public void AddUrlQuery(IEnumerable<KeyValuePair<string, string>> keyValue)
2828
{
2929
foreach (var kv in keyValue)
3030
{
31-
this.AddUrlQeury(kv);
31+
this.AddUrlQuery(kv);
3232
}
3333
}
3434

@@ -37,9 +37,9 @@ public void AddUrlQeury(IEnumerable<KeyValuePair<string, string>> keyValue)
3737
/// </summary>
3838
/// <param name="keyValue">参数</param>
3939
/// <exception cref="ApiConfigException"></exception>
40-
public void AddUrlQeury(KeyValuePair<string, string> keyValue)
40+
public void AddUrlQuery(KeyValuePair<string, string> keyValue)
4141
{
42-
this.AddUrlQeury(keyValue.Key, keyValue.Value);
42+
this.AddUrlQuery(keyValue.Key, keyValue.Value);
4343
}
4444

4545
/// <summary>
@@ -48,7 +48,7 @@ public void AddUrlQeury(KeyValuePair<string, string> keyValue)
4848
/// <param name="key">参数名</param>
4949
/// <param name="value">参数值</param>
5050
/// <exception cref="ApiConfigException"></exception>
51-
public void AddUrlQeury(string key, string value)
51+
public void AddUrlQuery(string key, string value)
5252
{
5353
if (this.RequestUri == null)
5454
{

WebApiClient/TaskExtend.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
namespace WebApiClient
88
{
99
/// <summary>
10-
/// ITask的扩展
10+
/// 提供ITask的扩展
1111
/// </summary>
1212
public static class TaskExtend
1313
{
@@ -81,7 +81,6 @@ public static IHandleTask<TResult> Handle<TResult>(this ITask<TResult> task)
8181
}
8282

8383
/// <summary>
84-
/// 返回提供异常处理请求任务对象
8584
/// 当遇到异常时返回默认值
8685
/// </summary>
8786
/// <typeparam name="TResult"></typeparam>
@@ -93,7 +92,6 @@ public static ITask<TResult> HandleAsDefaultWhenException<TResult>(this ITask<TR
9392
}
9493

9594
/// <summary>
96-
/// 返回提供异常处理请求任务对象
9795
/// 当遇到异常时返回默认值
9896
/// </summary>
9997
/// <typeparam name="TResult"></typeparam>

0 commit comments

Comments
 (0)