首页 > 代码库 > 反射和特性在SOA中的使用
反射和特性在SOA中的使用
组长给了个任务,需要了解SOA,眼一瞎,什么都不懂。幸好摆弄过百度API,加上百度了一个不错的文章,算有所了解了吧!
(一开始以为什么都没有,自己瞎捉摸,后来才知道原来已经有了一个demo,我也是醉了。)
不过自己写了个简单到不能再简单的,也不知道是对是错的小demo,然后再看别人的,也算是加深学习了。
用一般处理程序来做接口:
[Test(ClassType = typeof(TestSOABusiness))] public class TestHandler : IHttpHandler { public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; string usertype = context.Request.QueryString["usertype"]; Type classtype = null; string value=http://www.mamicode.com/string.Empty; Type t = this.GetType(); object[] objAttrs = t.GetCustomAttributes(typeof(TestAttribute), true); foreach (object obj in objAttrs) { TestAttribute attr = obj as TestAttribute; if (attr != null) { classtype = attr.ClassType; break; } } switch(usertype) { case "GetMethodA": { MethodInfo mf1 = classtype.GetMethod(usertype, BindingFlags.Public | BindingFlags.Static, null, new Type[] { typeof(string) }, null); value = (string)mf1.Invoke(null, new object[] { usertype }); break; } case "GetMethodB": { MethodInfo mf1 = classtype.GetMethod(usertype, BindingFlags.Public | BindingFlags.Static, null, new Type[] { typeof(int) }, null); value = (string)mf1.Invoke(null, new object[] { 2 }); break; } default: break; } context.Response.Write(value); } public bool IsReusable { get { return false; } } }
自定义的方法和特性就不贴了。
ps:调用方法的参数实体也是可以利用反射和配置文件来完成的,一是麻烦,二是自己一开始也不会(现在也不怎么会,只是知道了大概的逻辑。。。)。
反射和特性在SOA中的使用
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。