2

私が取り組んでいる 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
  }
});

カスタム コンポーネントのコードにアクセスすることさえしていないため、参照を追加するだけでコンポーネントが壊れてしまいます。誰でもこれに遭遇しますか?グーグル/ビンジングは役に立ちませんでした。

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 に答える