2012-08-25 19 views
2

我有一個javascript的Windows應用商店應用程序,我正在處理,我需要爲某些處理創建一個WinRT組件。只要我添加引用到該組件,我得到一個javascript錯誤:引用一個自定義的WinRT組件會打破JavaScript類?

0x800a01bd - Javascript運行時錯誤:對象不支持此操作。

這發生在一個線W /如下:

engine = new MyApp.Engine(); 

其定義:

WinJS.Namespace.define("MyApp", { 
    Engine: WinJS.Class.define(function() { 
    //constructor stuff 
    //other stuff snipped for brevity 
    } 
}); 

我甚至不訪問任何代碼在我的自定義組件,只需將基準原因它打破。任何人遇到這個?谷歌搜索/ Binging一直沒有幫助。

+0

他叫堆棧失敗?您的WinRT組件是否在您的類的構造函數中使用?在構造函數被調用之前,js是否實例化了這個對象? –

+0

哪個對象?就我而言,我所要做的就是引用WinRT組件,我永遠不需要調用任何定義的方法。 – Jonas

回答

2

我找到了答案。

所以在我的Javascript代碼中,我有一個命名空間的聲明。

在我的WinRT C#組件中,我使用了相同的命名空間。該命名空間顯然跺腳我的JS命名空間的聲明。我改變了我的WinRT組件從這個:

namespace MyApp 
{ 
    public sealed class SomeClass 
    { 
    } 
} 

到:

namespace MyAppUtils 
{ 
    public sealed class SomeClass 
    { 
    } 
} 

而現在一切都good..so,課:如果你使用JS和一個自定義WinRT的組件,你(顯然)不能在兩者中使用相同的命名空間。