2012-05-29 32 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 }); 
相關問題