2
我想调用一个我有一个参考的类的方法。我想要调用的方法具有自定义属性。目前我可以找到这个属性并调用我的类Attribute的属性。如何使用属性在类上调用方法?
有没有办法来调用该方法?
PS /该项目是用vbnet编写的,但我认为解决方案在c#中是一样的。
我想调用一个我有一个参考的类的方法。我想要调用的方法具有自定义属性。目前我可以找到这个属性并调用我的类Attribute的属性。如何使用属性在类上调用方法?
有没有办法来调用该方法?
PS /该项目是用vbnet编写的,但我认为解决方案在c#中是一样的。
如果你可以找到的属性,我猜你有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 });
是否可以y ou提供更多的细节或代码。你的问题尚不清楚。 –