C#遍历对象里的属性和方法

在测试的时候,偶尔会有须要遍历某个对象,获取这个对象里的全部的方法和属性。
OK好吧,这种需求,会在作代理的时候用到的。好比被测对象不固定,或者前期更新会比较频繁。每次的更改,致使测试代码常常变动。
这个时候,若是能够获取对象的全部属性和全部方法,而后按照需求注入对应的数据,那么或许就方便了不少。
像一些测试工具(像SOAPUI,PushToTest等),你提供了某些方法或者地址,它能够将对应的参数,方法都给反射出来,而后你须要作的事情就是填入对应的值了。
经过参看C#的文档(因为工做须要,目前主要工做在.net平台),发现了System.Reflection里有提供的一些方式和方法
好比,下面的,获取对象的全部属性segmentfault

static void Main(string[] args)
{
      var t = ServiceProxy.GetTcpService<IConfigurationService().GetConfig("ETMongoDBConnectionString");
foreach (System.Reflection.PropertyInfo p in t.GetType().GetProperties())
    {
      Console.WriteLine("Name:{0} Value:{1}",p.Name,p.GetValue(t));
     }

   Console.ReadLine();
 }

结果以下
请输入图片描述工具

遍历对象的方法,同样的的方式测试

var ts = ServiceProxy.GetTcpService<IConfigurationService>();
    foreach (System.Reflection.MethodInfo m in ts.GetType().GetMethods())
    {
        Console.WriteLine(m.Name);
        var ms = m.GetParameters();
        foreach (var psinfo in ms)
        {
         Console.WriteLine(psinfo.Name + " "+psinfo.ParameterType.ToString());
        }
        Console.WriteLine("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
    }

结果以下:
请输入图片描述spa

相关文章
相关标签/搜索