2013-10-18 165 views
1

我在VB中的ASP應用程序有許多模塊,我想與WinForms VB應用程序共享。但是VB.ASP模塊包含的內容在WinForms應用程序中並不是必需的,有用的或可能的。我可以使用編譯器指令來啓用一個文件在兩個項目中工作嗎?在WinForms和ASP應用程序之間共享代碼模塊?

+0

做你的INCLUDES在另一個模塊(文件),不要把它們帶到VB應用程序,只有ASP應用程序。你可以擁有多個MODULE文件,它們被視爲只是一個文件,但是你可以將東西分爲一個項目中的一個MODULE和另一個項目中的另一個MODULE,或者同時包含一個。 – Steve

回答

1

退房這個問題:VB.NET Preprocessor Directives這表明你如何使用預處理指令

所以,基本上你需要包括你的文件到的WinForms應用程序,並在這些文件添加行這樣的:

#IF MYDEFINEFORASPNET Then 
    require/import/define functions which are only for .net 
#End if 

#if MYDEFINEFORWINFORM Then 
    require/import/function for only win form 
#End if 

define generic functions 

另一種方法來實現這一點 - 重構代碼將通用零件移動到單獨的dll中,這可以用於兩個項目而無需重新編譯

+0

我已經在網上查看了很多信息。但是所有的例子都顯示CODE被改變,而不是IMPORTS。沒有一個提到如何區分爲ASP和WinForms生成的代碼。 – user212421

+0

您對代碼被更改的問題,而不是關於導入,更新答案 –

0

自定義值確實是一種方式,但我認爲我有另一種方式。

The _MYTYPE compilation constant由Visual Studio管理,包含「Windows」,「控制檯」,「Web」和類似的細節。我可以附上進口報表#如果裏面像這樣:

#If _MYTYPE = "Web" Then 
    Imports System.Web.HttpRequest 
#End If 

重構確實出現了所需要做到這一點,很遺憾。他們可能不會讓我這樣做。

相關問題