【发布时间】:2010-08-21 00:48:47
【问题描述】:
1。从 JSC 编译的程序集
我已经使用服务器端的 JScript 编译器 (jsc.exe) 编译了打算作为客户端 JavaScript 的东西,试图制作可以从单元测试项目中测试的东西,甚至可能是可以在服务器端调试。
编译后的文件只包含函数如下(仅举例),它可以很好地编译成BitField.exe。注意,源代码中没有包装类或包。
------ 开始文件 (BitField.js) --------
function BitField(){
this.values = [];
}
// more functions ...
------- 结束文件 -------
jsc /fast- /out:BitField.exe Bitfield.js
生成 BitField.exe 程序集。
成功了!嗯,有点......
2。测试组件/接入点?
其次,我创建了一个测试项目(在 C# 中)并成功在 BitField.exe 程序集中引用。 (项目类型无关紧要,但我提供了更多描述以描绘完整的画面。)
问题似乎是:我找不到可以从我的 C# 测试项目访问 BitField.exe 程序集中的 BitField 函数的命名空间或点。大会似乎不是“正常的”。
换句话说,我需要在 C# 中
using ???WHAT???
注意:我不想使用 JScript “扩展”,即不会在客户端(在 Web 浏览器中)运行的关键字,例如,class、@987654326 @ 等,因为我希望代码尽可能干净,以便复制并粘贴回客户端脚本环境(尽管说“干净”的代码在不使用这些扩展的情况下由 jsc.exe 编译得很好)。当我尝试将函数包装在package 和class 中时,它开始产生编译错误,所以这是不使用它们的另一个原因——因为它们似乎让我改变了我的代码。
当没有明确的容器时,我可以如何使用已编译的 JScript 程序集的功能(通过将其引用到另一个程序集)有什么建议吗?
更新/证明
.NET 反射器视图
【问题讨论】:
-
您是否查看了使用 .NET Reflector 生成的程序集?你记得公开它的课程吗?您在哪个命名空间中声明了您的函数?
-
@EricLaw:如问题所述,源代码中没有类。 .NET Reflector 在这种情况下不提供帮助 - 无法引用它显示的内容。源代码中也没有声明命名空间。
标签: namespaces assemblies jscript.net