2011-02-01 13 views
0

它可以調用外部類的函數嗎? 外部類在另一臺機器上運行(說它的位置是mymachine.com)。 前段時間使用過CreateInstance,但不認爲會這樣做(糾正我,如果我錯了)。 我一直在尋找很長一段時間,但還沒有找到解決方案,所以我希望你們其中一位能幫忙。C#調用外部函數(類其他機器)

的我已經搜查了一個來源是,但沒有信息:( http://www.dreamincode.net/forums/topic/102523-call-an-external-function-on-button-click/

希望你能有所幫助。

+0

當您說:「外部類在另一臺計算機上運行」時,您可能意味着包含此類實例的進程正在另一臺計算機上運行。 – HuBeZa 2011-02-01 13:19:28

回答

4

使用自託管的WCF服務,遠程或任何聯網技術。

有當你使用一些遠程處理機制(無論是遠程處理,WCF,rpc等)時,我都會加以注意,你使用「代理」工作。代理是一個模擬實際對象的對象,但封裝了通信。它允許開發人員通過具有屬性,方法等的對象來隱藏複雜性,但背後的技術(例如,WCF服務的xml消息傳遞)必須由開發人員知曉。它可能會影響網絡,響應速度以及編程模型。

3

這種操作是爲Web Services/WCF Services/Remoting構建的。 WCF是處理跨邊界通信的非常好的解決方案。看看WCF,谷歌是你的朋友。

0

如果外部組件是在遠程機器上的共享文件夾,則可以做以下之一:

1)實現AppDomain.CurrentDomain.AssemblyResolve事件處理程序以加載外部程序集,並進行所需的調用。 (copylocal = false)也可以在項目中引用程序集。在程序集中實例化類或靜態方法的第一個調用將調用事件處理程序並加載遠程外部程序集。

2)使用System.Reflection.Assembly.LoadFrom()通過反射加載組件並提供遠程路徑。使用反射來調用所需的方法等。