Windows 8 引用自定义WinRT组件会破坏javascript类吗?

Windows 8 引用自定义WinRT组件会破坏javascript类吗?,windows-8,microsoft-metro,windows-runtime,winjs,Windows 8,Microsoft Metro,Windows Runtime,Winjs,我正在开发一个javascript Windows应用商店应用程序,我需要创建一个WinRT组件进行一些处理。一旦我添加对该组件的引用,就会出现一个javascript错误: 0x800a01bd-Javascript运行时错误:对象不支持此操作 这发生在具有以下内容的行上: engine = new MyApp.Engine(); 定义如下: WinJS.Namespace.define("MyApp", { Engine: WinJS.Class.define(function() {

我正在开发一个javascript Windows应用商店应用程序,我需要创建一个WinRT组件进行一些处理。一旦我添加对该组件的引用,就会出现一个javascript错误:

0x800a01bd-Javascript运行时错误:对象不支持此操作

这发生在具有以下内容的行上:

engine = new MyApp.Engine();
定义如下:

WinJS.Namespace.define("MyApp", {
  Engine: WinJS.Class.define(function() {
    //constructor stuff
    //other stuff snipped for brevity
  }
});
我甚至没有访问自定义组件中的任何代码,只是添加引用会导致其中断。有人碰到这个吗?google/bing没有任何帮助。

我找到了答案

所以在我的Javascript代码中,我有一个名称空间的声明

在我的WinRT C#组件中,我使用了相同的名称空间。这个名称空间显然破坏了我的JS名称空间声明。我从以下位置更改了WinRT组件:

namespace MyApp
{
  public sealed class SomeClass
  {
  }
}
致:


现在一切都好了。所以,教训:如果您使用的是JS和自定义WinRT组件,您(显然)不能在这两个组件中使用相同的名称空间。

他将失败的堆栈称为什么?类的构造函数中是否使用WinRT组件?在调用构造函数之前是否包含实例化此对象的js?哪个对象?在我的例子中,我所要做的就是引用WinRT组件,我不需要调用在它上面定义的任何方法。
namespace MyAppUtils
{
  public sealed class SomeClass
  {
  }
}