我想在我引用的类上调用一个方法。我要调用的方法具有自定义属性。目前我可以找到这个属性并调用我的类属性的属性。
有没有办法调用该方法?
PS/ 项目是用vbnet写的,但是我觉得c#的解决方法是一样的。
我想在我引用的类上调用一个方法。我要调用的方法具有自定义属性。目前我可以找到这个属性并调用我的类属性的属性。
有没有办法调用该方法?
PS/ 项目是用vbnet写的,但是我觉得c#的解决方法是一样的。
如果你能找到我猜你有MethodInfo
那个方法的属性。只需调用该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 });