利用虚拟方法和反射简化Alisoft API的调用(二)
2008-11-21 12:18
295 查看
上篇 利用虚拟方法和反射简化Alisoft API的调用 写的时候比较晚,而且第一次在博客园上发博客,忘记贴具体的实现了.
顺便说一下题外话,阿里的工作人员的态度还是非常不错的,我上篇文章提的用户体验问题,马上就收到他们的反馈.值得表扬.毕竟国内大多开放的api 都是为了炒作概念而已.
言归正传 先贴委托的代码
public
delegate TData Actions<TData>(string result);
public
static TData Result<TData>(ParBase par, Actions<TData> reslutAction)
{
string status = string.Empty;
string result = Signature.Post(Constants.SIP_API_URL, par.ToString(), out status);
if (string.IsNullOrEmpty(status))
{
return
default(TData);
}
else
if ("9999".Equals(status)) //以下部分还没有优化,昨晚时间已经比较晚了就没想了 ,
{ //需要把这里抽离出来,毕竟alisoft api目前还在不断改进
return reslutAction(result);
//return null;
}
else
if ("1004".Equals(status))
{
System.Web.HttpContext.Current.Response.Redirect(result + Constants.SIP_Redirecturl);
return
default(TData); ;
}
else
{
//Utils.Debug("itemcats_get: " + parent_cid + " : " + Signature.GetMessage(status));
return
default(TData); ;
}
}
ParBase类是参数的基类,由于大部分的api参数都比较多,传参是个烦人的事情,利用我以前写的ASP.NET偷懒大法三 (利用Attribute特性简化多查询条件拼接sql语句的麻烦) 同样的思路来节省代码
具体就不贴代码了,贴个图吧. (问一下,在word里面怎么能让代码可以折叠?)
图(1)
[Par(IsNeed=true)] 属性是为了表示参数是否必须.只要是为了开发中提醒我参数是否赋值
重写了ToString方法 来实现传给api的参数+sip_sign 参数
希望有更好的方法,来让我们偷懒,有好的思路记得告诉我.俺抛砖引玉啦 O(∩_∩)O
顺便说一下题外话,阿里的工作人员的态度还是非常不错的,我上篇文章提的用户体验问题,马上就收到他们的反馈.值得表扬.毕竟国内大多开放的api 都是为了炒作概念而已.
言归正传 先贴委托的代码
public
delegate TData Actions<TData>(string result);
public
static TData Result<TData>(ParBase par, Actions<TData> reslutAction)
{
string status = string.Empty;
string result = Signature.Post(Constants.SIP_API_URL, par.ToString(), out status);
if (string.IsNullOrEmpty(status))
{
return
default(TData);
}
else
if ("9999".Equals(status)) //以下部分还没有优化,昨晚时间已经比较晚了就没想了 ,
{ //需要把这里抽离出来,毕竟alisoft api目前还在不断改进
return reslutAction(result);
//return null;
}
else
if ("1004".Equals(status))
{
System.Web.HttpContext.Current.Response.Redirect(result + Constants.SIP_Redirecturl);
return
default(TData); ;
}
else
{
//Utils.Debug("itemcats_get: " + parent_cid + " : " + Signature.GetMessage(status));
return
default(TData); ;
}
}
ParBase类是参数的基类,由于大部分的api参数都比较多,传参是个烦人的事情,利用我以前写的ASP.NET偷懒大法三 (利用Attribute特性简化多查询条件拼接sql语句的麻烦) 同样的思路来节省代码
具体就不贴代码了,贴个图吧. (问一下,在word里面怎么能让代码可以折叠?)
图(1)
[Par(IsNeed=true)] 属性是为了表示参数是否必须.只要是为了开发中提醒我参数是否赋值
重写了ToString方法 来实现传给api的参数+sip_sign 参数
希望有更好的方法,来让我们偷懒,有好的思路记得告诉我.俺抛砖引玉啦 O(∩_∩)O
相关文章推荐
- 利用虚拟方法和反射简化Alisoft API的调用
- 在工厂模式里面利用反射机制动态调用对象方法
- (JNI)c代码利用反射调用java方法
- C# 如何利用反射来加载程序集,并调用程序集中有关类的方法【转】
- 利用.net反射动态调用指定程序集的中的方法
- 利用反射机制,获取类的字段、方法、并实现简单调用
- C# aspx页面动态加载ascx用户控件 及 利用反射调用其内方法
- Android 反射调用方法并利用此方法展开android通知栏
- 利用反射调用用户控件方法
- 利用反射——动态调用类中的方法
- 利用反射来动态创建实例和调用方法
- C#利用反射调用基类私有方法 及 Unity实现自定义InputField
- 利用反射调用方法抛出的异常如何被捕获?
- tp 框架 利用反射实现对象调用方法
- C# 如何利用反射,将字符串转化为类名并调用类中方法
- (JNI)c代码利用反射调用java方法
- 利用反射实现对象调用方法
- 利用反射原理调用方法抛出异常:argument type mismatch
- Java记录 -88- 利用反射机制调用对象的私有方法和属性
- 利用.net反射动态调用指定程序集的中的方法