2012-05-29 33 views
2

我想调用一个我有一个参考的类的方法。我想要调用的方法具有自定义属性。目前我可以找到这个属性并调用我的类Attribute的属性。如何使用属性在类上调用方法?

有没有办法来调用该方法?

PS /该项目是用vbnet编写的,但我认为解决方案在c#中是一样的。

+0

是否可以y ou提供更多的细节或代码。你的问题尚不清楚。 –

回答

2

如果你可以找到的属性,我猜你有MethodInfo该方法(S)。只需调用MethodInfo.Invoke方法,就必须指定要使用的对象的实例(或者如果它是静态方法,则为null),并指定要传递给该方法的所有参数(与原型的顺序相同)。

例如,如果你要调用与这个原型的方法:

void Foo(string name, int value); 

而且你有一个函数来查找方法(使给定属性搜索):

MethodInfo FindMethodWithAttribute(Type attributeType, Type objectType); 

您可以使用此代码找到并调用该方法(假设对象anObject):

MethodInfo method = FindMethodWithAttribute(
    typeof(MyAttribute), // Type of the "marker" attribute 
    anObject.GetType()); // Type of the object may contain the method 

method.Invoke(anObject, new object[] { "someText", 2 }); 
相关问题