使用反射获取对象功能

时间:2011-07-19 19:30:43

标签: c# vb.net visual-studio

我知道如何使用反射来获取属性,但是如何获得属性的函数名称和类型:

例如:Combobox.Items.Add

我想获得信息。用反射“添加”。这可能在.Net吗?

3 个答案:

答案 0 :(得分:3)

  

我想获得信息。用反射“添加”。这可能在.Net吗?

只需使用Type.GetMethod即可。所以,在这里你必须说:

var addMethodInfo = typeof(ObjectCollection).GetMethod("Add");

我使用ComboBox.Items属于System.Windows.Forms.ComboBox.ObjectCollection类型的事实。

答案 1 :(得分:0)

如果您需要获取给定对象的所有方法,请尝试

MethodInfo[] MI = Combobox.Items.GetType().GetMethods ();
// you can then loop over MI and access the method name for example MI[0].Name or even Invoke the method etc.

答案 2 :(得分:0)

您可以使用Reflection来获取描述方法的MethodInfo对象:

MethodInfo[] method = Combobox.Items.GetType().GetMethods();

完成此操作后,您可以使用MethodInfo的方法和属性  访问和查看有关该方法的信息。

获取此方法接收的参数:

        MethodInfo[] method = Combobox.Items.GetType().GetMethods();

       // equivalent to previous code.
       // MethodInfo[] method = typeof(ObjectCollection).GetMethods();

        MethodInfo someMethod = method[0];

        ParameterInfo[] parameters = someMethod.GetParameters();