如果您有權訪問WinForms應用程序的源代碼,那麼您最好的方法是從那裏提取您需要的代碼,並將其直接合併到您的WebForms應用程序中。
如果此代碼需要由WinForms和您的WebForms應用程序使用,那麼您應該將代碼重構爲一個單獨的類庫(DLL),然後由這兩個應用程序使用。
如果您只有Windows應用程序的EXE,並且它是一個.Net應用程序,則可以使用Reflection
來創建和使用在此處定義的對象。
如果它不是.Net EXE,告別並感謝所有的魚(除非它是COM,在這種情況下,告別並感謝所有的魚)。
更新:我從來沒有嘗試過這一點,我不推薦它,但我假設你基本上要能夠在Web應用程序中使用基於Windows的形式可視組件(即你想讓這個東西在瀏覽器中顯示出來)。
您可能能夠將原始WinForms項目中的每個Form
重建爲位於網頁上的ActiveX控件。此鏈接介紹如何在.NET中創建一個基本的ActiveX控件:
http://www.codeproject.com/KB/cs/CreateActiveXDotNet.aspx
我不知道瀏覽器支持的想法ActiveX控件,這些天(我知道有一些還是),而這種做法肯定行不通在非Windows操作系統上。此外,您必須處理在每臺客戶端計算機上部署和安裝可視化組件(並且您需要檢查此控件的許可協議 - 幾乎肯定會明確禁止此類使用)。
理論上,這是可行的。一個ActiveX控件可以或多或少地做或使用任何常規窗體可以(受權限等)。
你的問題不清楚。 – SLaks 2010-04-09 16:19:36
爲什麼不把代碼放在dll中並引用該dll? – 2010-04-09 16:21:19
我想他想使用WinForms專用控件。 – SLaks 2010-04-09 16:25:06