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

时间:2012-08-25 03:05:28

标签: 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() {
    //constructor stuff
    //other stuff snipped for brevity
  }
});

我甚至没有访问我的自定义组件中的任何代码,只是添加引用会导致它中断。有人碰到这个吗?谷歌/ Binging一直没有帮助。

1 个答案:

答案 0 :(得分:2)

我找到了答案。

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

在我的WinRT C#组件中,我使用的是相同的命名空间。该命名空间显然扼杀了我的JS命名空间声明。我改变了我的WinRT组件:

namespace MyApp
{
  public sealed class SomeClass
  {
  }
}

为:

namespace MyAppUtils
{
  public sealed class SomeClass
  {
  }
}

现在一切都很好......所以,教训:如果你使用JS和自定义WinRT组件,你(显然)不能在两者中使用相同的命名空间。