在WinForms和ASP应用程序之间共享代码模块?

时间:2013-10-18 18:10:19

标签: asp.net vb.net winforms winforms-to-web

我在VB中的ASP应用程序有许多模块,我想与WinForms VB应用程序共享。但VB.ASP模块包含的内容在WinForms应用程序中不是必需的,有用的或可能包含的。我可以使用编译器指令使一个文件在两个项目中都能工作吗?

2 个答案:

答案 0 :(得分: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中,这可以用于两个项目而无需重新编译

答案 1 :(得分:0)

自定义值确实是一种方式,但我认为我有另一种方式。

The _MYTYPE compilation constant由Visual Studio管理,包含“Windows”,“控制台”,“Web”和类似细节。我可以在#If中包含IMPORTS语句,如下所示:

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

不幸的是,重构似乎确实需要这样做。他们可能不会让我这样做。