我正在嘗試使用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