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

标签 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
  }
});

我什至没有访问自定义组件中的任何代码,只需添加引用就会导致它中断。有人遇到过这个吗?谷歌搜索/必应没有任何帮助。

最佳答案

我找到了答案。

因此,在我的 Javascript 代码中,我声明了命名空间。

在我的 WinRT C# 组件中,我使用相同的命名空间。该命名空间显然消除了我的 JS 命名空间声明。我从此更改了我的 WinRT 组件:

namespace MyApp
{
  public sealed class SomeClass
  {
  }
}

至:

namespace MyAppUtils
{
  public sealed class SomeClass
  {
  }
}

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

关于windows-8 - 引用自定义 WinRT 组件会破坏 javascript 类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12118821/

相关文章:

javascript - 从 WinJS 发送邮件

directx - WinRT 中的公共(public)值结构

windows - 无法访问 Metro 应用程序中的 Assets 文件

c# - 在 WebView Metro Style 应用程序中加载本地 html 文件

wcf - 从 Metro 应用程序客户端运行 WCF 服务

c# - 代码隐藏中无法识别 XAML 控件

windows-8 - GestureRecognizer 中的触摸点数量

c# - WinRt 页面导航

c# - Lambda 表达式作为参数用作 AsTask() 回调

c# - 调试器可以防止挂起吗?