Кажется возможным смешать код "Option Explicit
" с кодом, отличным от "Option Explicit
", с помощью оператора Execute
.
Вот небольшой тест, который я только что сделал с VBScript (который также применим к классическому ASP):
''#vb1.vbs (i.e. "your code")
Option Explicit
Dim fso, vb2, txt
Set fso = CreateObject("Scripting.FileSystemObject")
Set vb2 = fso.OpenTextFile("vb2.vbs", 1)
txt = vb2.ReadAll
MsgBox txt ''# Message 1
Execute txt
MsgBox foo ''# Message 2
и
''# vb2.vbs (i.e. "their code")
j = 100
Function foo
k = 100
foo = j + k
End Function
Результаты:
Message 1: (equal to the contents of vb2.vbs)
Message 2: 200
Я понятия не имею, является ли это лучшим способом сделать это, но в настоящее время я не могу придумать лучшего способа. Попробуйте.
Остерегайтесь столкновений пространства имен через глобальные переменные или имена функций в «их коде».