2

我有一个我正在处理的 javascript Windows Store 应用程序,我需要创建一个 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 没有帮助。

4

1 回答 1

2

我找到了答案。

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

在我的 WinRT C# 组件中,我使用了相同的命名空间。那个命名空间显然踩了我的 JS 命名空间声明。我从这里更改了我的 WinRT 组件:

namespace MyApp
{
  public sealed class SomeClass
  {
  }
}

到:

namespace MyAppUtils
{
  public sealed class SomeClass
  {
  }
}

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

于 2012-08-25T05:19:53.997 回答