首页 > 代码库 > 反射和特性在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;            }        }    }
View Code

 自定义的方法和特性就不贴了。

ps:调用方法的参数实体也是可以利用反射和配置文件来完成的,一是麻烦,二是自己一开始也不会(现在也不怎么会,只是知道了大概的逻辑。。。)。

 

反射和特性在SOA中的使用