私はJSILを使い始めています。私が理解する限り、私は指示に従った。私はコードで非常に基本的なC#のダミープロジェクトを持っている:Webページの基本的な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スクリプトと一緒にこれをホストするWebサイトを作成しました。私の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>
...私はライブラリにアクセスできません。コンソール出力は、ロード中であることを示します。
これは200 OKです。しかし、私はそれにアクセスすることはできません。実行した場合:
var asm = JSIL.GetAssembly("TestLib", true);
私はライブラリにスタブを戻しますが、その中には何もありません。 asm.$typesByName
がありますが、それは空のオブジェクトです。私がしたいことは(それが動作するのを見て)Multiply
とAdd
のメソッドを呼び出すことです。
So:私は何が欠けていますか?私の目的は、私が理解している通り、であるjsを通してアクセスできる蒸散ライブラリをホストすることです。:可能です。私はそれを機能させることができません。 https://github.com/mgravell/jsilfun