日期:2014-05-17  浏览次数:20732 次

Net WCF遍历方法参数
有没有什么好方法能够遍历一个方法的所有的参数反射也可以 
我写的一个Wcf有一个方法 void SayHello(string UserKey,string Message,out ResponseType);
所有的方法都要检测所有的参数
例如我数据库的字符串都是nvarchar(50)
而这里的message长度大于50就会报错
我是想能够在方法内“循环”所有的参数进行检测
最好是能够在构造函数中整一个然后我就不用管了
几百个方法我不知道要写多少次!

------解决方案--------------------
既然message长度超长会报错你就应该直接把异常信息抛出来,或者在调用前就限制他的操作不让他输入50个以上的字符,或者就增加数据库的字段长度,不知道你为什么一定要限制在50是什么原因~因为如果是调用者调用服务他一定要知道调用成功还是失败的信息,如果调用失败也最好有失败的异常信息~当然在方法注释里面就应该写明限制条件这样者在调用前就知道应该对参数做什么样的限制,如果他不限制报错是调用方的责任,你这个一定要检查也行
例如这样
            
            Type t = test.GetType();
            MethodInfo method = t.GetMethod("SayHello");
            foreach (var item in method.GetParameters())
            {
                Console.WriteLine("Parameter Name:{0}, Parameter Type:{1}", item.Name, item.ParameterType);
            }
但是个人不建议这么操作~