我正在一個包含多個項目的解決方案中工作。我需要從不同項目中的一個項目訪問方法。我們有一個單獨的項目來處理傳入數據包和更新本地數據,然後從這我需要訪問主應用程序項目中的一個方法(它向用戶顯示一個自定義通知)訪問項目外的方法
在主應用程序中,我有一個方法具有以下簽名
Public Sub NotifyRemoved(ByVal message As String)
在數據包處理的項目,我已經使用調用來調用方法,像這樣嘗試:
removedItems是字符串列表。
「MainForm」是上述方法所在的類。
For Each removed As String In removedItems
Dim newType As Type = Type.GetType("MainForm")
Dim newConstructor As ConstructorInfo = newType.GetConstructor(Type.EmptyTypes)
Dim newClassObject As Object = newConstructor.Invoke(New Object() {})
Dim newMethod As MethodInfo = newType.GetMethod("NotifyRemoved")
newMethod.Invoke(newClassObject, New Object() {removed & " has been removed from list"})
Next
當我通過調試Type.GetType()方法返回任何內容併爲此拋出下一行的異常運行這個......我曾嘗試使用事件等,但所有的方法我可以其他途徑發現似乎需要兩個類之間的直接訪問。
有什麼想法?
在此先感謝。
引用項目日常只需添加含有MainForm的項目的引用,然後直接調用它使用'項目名。 MainForm' –
你爲什麼試圖使用反射而不是僅僅添加項目引用? (請注意,我並不是說這在架構上必然是正確的方法,但添加對基於UI的項目的引用是可疑的,但是問題中沒有足夠的信息來真正得出結論,一般來說,當您需要參考代碼,您*添加引用*到該代碼。) – David