Совместное использование модулей кода между приложениями WinForms и ASP?
В моем приложении ASP на VB есть много модулей, которыми я бы хотел поделиться с приложением WinForms VB. Но модули VB.ASP имеют включения, которые не нужно, полезно или невозможно включать в приложение WinForms. Могу ли я использовать директивы компилятора, чтобы один файл работал в обоих проектах?
2 ответа
Проверьте этот вопрос: Директивы препроцессора VB.NET показывают, как вы можете использовать директивы препроцессора
Итак, в основном вам нужно включить ваши файлы в приложение 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, которые можно использовать для обоих проектов без перекомпиляции.
Самостоятельно определенные ценности действительно один способ, но я думаю, что у меня есть другой.
Константа компиляции _MYTYPE управляется Visual Studio и содержит "Windows", "Console", "Web" и аналогичные особенности. И я могу заключить операторы IMPORTS в #If так:
#If _MYTYPE = "Web" Then
Imports System.Web.HttpRequest
#End If
Рефакторинг действительно необходим для этого, к сожалению. Они, вероятно, не позволят мне сделать это.