我正在尝试使用JSIL开始。据我所知,我遵循了指示。我有代码一个非常基本的C#项目假人:如何访问网页中的基本JSIL库(来自C#)?
namespace TestLib
{
public class MagicType
{
public int Multiply(int x, int y)
{ // test instance method
return x * y;
}
public static int Add(int x, int y)
{// test static int method
return x + y;
}
}
}
我已经jsilc
编译这一点,并创建了一个网站,与jsil脚本一起主持这一点。我的html初始化为:
<script type="text/javascript">
var jsilConfig = {
libraryRoot: '/js/jsil/',
scriptRoot: '/js/testlib/',
manifestRoot: '/js/testlib/',
manifests: ['TestLib.dll'] // gets as far as Loading '/js/testlib/TestLib.dll.manifest.js'...
// which is 200/OK
};
var asm = null;
var runMain = function() { // doesn't get invoked
console.log('> main');
asm = JSIL.GetAssembly("TestLib", true); // (executed outside method) returns a stub with no content
console.log('< main');
};
</script>
<script src="/js/jsil/jsil.js"></script>
但是...我无法访问库。控制台输出表示正在加载:
Loading '/js/testlib/TestLib.dll.manifest.js'...
这是一个200 OK。但是,我无法访问它。如果我运行:
var asm = JSIL.GetAssembly("TestLib", true);
然后我找到一个存根到图书馆,但它没有任何内容。有一个asm.$typesByName
,但这是一个空的对象。我想要做的(看它的工作)是调用Multiply
和Add
方法。
所以:我错过了什么?我的意图是托管一个我可以通过js访问的传输库,这是我知道的:可能的。我无法让它工作。我已经在这里上传了我的整个测试项目:https://github.com/mgravell/jsilfun