Я скомпилировал то, что предназначено для клиентского JavaScript, используя JScript-компилятор (jsc.exe) на стороне сервера, чтобы сделать что-то, что можно протестировать из проекта модульного тестирования, и может быть, даже то, что можно отладить на стороне сервера.
Скомпилированный файл содержит только функции следующим образом (только для примера) и прекрасно компилируется в BitField.exe. Обратите внимание, что в исходном коде нет класса или пакета-оболочки.
------ BEGIN FILE (BitField.js) -------
function BitField(){
this.values = [];
}
// more functions ...
------- END FILE --- ----
jsc /fast- /out:BitField.exe Bitfield.js
Результатом является сборка BitField.exe.
Успех! Ну, вроде как ...
Во-вторых, я успешно создал тестовый проект (в C #) и ссылаюсь на сборку BitField.exe. (Тип проекта не имеет значения, но я предоставляю больше описания, чтобы нарисовать полную картину.)
Проблема, кажется, такова: Я не могу найти пространство имен или точку, в которой я могу получить доступ к функциям BitField внутри сборка BitField.exe из моего проекта C # test . Сборка не кажется "нормальной".
Другими словами, мне нужно в C #
using ???WHAT???
Примечание : я не хочу использовать «расширения» JScript, то есть ключевые слова, которые не будут работать на стороне клиента (в веб-браузере), например, class
, package
и т. Д., Потому что я хочу, чтобы код был максимально чистым для копирования и вставьте обратно в среду сценариев на стороне клиента (несмотря на это «чистый» код прекрасно компилируется с помощью jsc.exe без использования этих расширений). Когда я пытаюсь обернуть функции в пакет пакета
и класса
, он начинает выдавать ошибки компиляции, поэтому это еще одна причина не использовать их - потому что они, похоже, заставляют меня изменить мой код.
Есть ли какие-либо предложения относительно того, как я могу использовать функции скомпилированной сборки JScript (путем ссылки на нее в другой сборке), когда в ней нет явных контейнеров?
.NET Reflector view