可自定义数据节点

This commit is contained in:
tanghc
2019-05-04 17:17:09 +08:00
parent a6e04b6ca4
commit 9d8891e49b
23 changed files with 515 additions and 45 deletions

View File

@@ -0,0 +1,27 @@
using System;
namespace SDKCSharp.Common
{
/// <summary>
/// 返回固定的dataName
/// </summary>
public class CustomDataNameBuilder: DataNameBuilder
{
private string dataName = "result";
public CustomDataNameBuilder()
{
}
public CustomDataNameBuilder(string dataName)
{
this.dataName = dataName;
}
public string Build(string method)
{
return dataName;
}
}
}

View File

@@ -0,0 +1,13 @@
using System;
namespace SDKCSharp.Common
{
public interface DataNameBuilder
{
/// <summary>
/// 构建数据节点名称
/// </summary>
/// <returns>返回数据节点名称.</returns>
/// <param name="method">方法名.</param>
string Build(string method);
}
}

View File

@@ -0,0 +1,20 @@
using System;
namespace SDKCSharp.Common
{
/// <summary>
/// 将方法名中的"."转成"_"并在后面追加"_response"。
/// 如alipay.trade.order.settle --> alipay_trade_order_settle_response。
/// </summary>
public class DefaultDataNameBuilder : DataNameBuilder
{
private const char DOT = '.';
private const char UNDERLINE = '_';
private const string DATA_SUFFIX = "_response";
public string Build(string method)
{
return method.Replace(DOT, UNDERLINE) + DATA_SUFFIX;
}
}
}

View File

@@ -12,7 +12,7 @@ namespace SDKCSharp.Common
{
private String successCode = SdkConfig.SUCCESS_CODE;
/// <summary>
/// 返回码成功值
/// </summary>
@@ -186,6 +186,11 @@ namespace SDKCSharp.Common
public string SignTypeName { get => signTypeName; set => signTypeName = value; }
private DataNameBuilder dataNameBuilder = SdkConfig.dataNameBuilder;
/// <summary>
/// 节点名称构造器
/// </summary>
/// <value>The data name builder.</value>
public DataNameBuilder DataNameBuilder { get => dataNameBuilder; set => dataNameBuilder = value; }
}
}

View File

@@ -20,5 +20,7 @@ namespace SDKCSharp.Common
public static Encoding CHARSET = Encoding.UTF8;
public static SignType SIGN_TYPE = SignType.RSA2;
public static DataNameBuilder dataNameBuilder = new DefaultDataNameBuilder();
}
}