Version: 2017.4
ユニバーサル Windows プラットフォーム: .NET スクリプティングバックエンドで生成されるプロジェクト
ユニバーサル Windows プラットフォーム: .NET スクリプトバックエンドのプラグイン

ユニバーサル Windows プラットフォーム: .NET スクリプトバックエンドで未対応の .NET型

ユニバーサル Windows アプリで使用される .NET スクリプトバックエンドは、このプラットフォームのための特別な .NET バージョンで、Mono と完全に互換性があるわけではありません。具体的には、データ型のいくつかがなかったり、あるクラスでは Mono にはあるメソッドがない、ということがあります。

すでにあるゲームをユニバーサル Windows アプリとして簡単に移植するため、未対応のいくつかの .NET 型は Unity が提供します。加えて、いくつかの拡張メソッドと代わりの型を加え、マイグレーションを容易にします。それらの型は PlaybackEngines\metrosupport\Managed\WinRTLegacy.dll に保管されています。

Unity によって提供されている型には以下の通りです。

  • System.Collections.ArrayList
  • System.Collections.Hashtable
  • System.Collections.Queue
  • System.Collections.SortedList
  • System.Collections.Stack
  • System.Collections.Specialized.HybridDictionary
  • System.Collections.Specialized.ListDictionary
  • System.Collections.Specialized.NameValueCollection
  • System.Collections.Specialized.OrderedDictionary
  • System.Collections.Specialized.StringCollection
  • System.IO.Directory
  • System.IO.File
  • System.IO.FileStream
  • System.Xml.XmlDocument
  • System.Xml.XmlTextReader
  • System.Xml.XmlTextWriter

さらに、名前空間 WinRTLegacy が加えられ、以下のような追加のクラスと拡張メソッドを提供します。

  • ほとんどの System.IO クラス用の拡張メソッド Close() (代替として、ユニバーサル Windows プラットフォームの Mono と .NET 両方で使用可能な Dispose() を使用できます)
  • WinRTLegacy.TypeExtensions には System.Type のための GetConstructor()、GetMethod()、GetProperty() メソッドがあります
  • WinRTLegacy.IO.StreamReader クラスは Mono の System.IO.StreamReader と互換性があります
  • WinRTLegacy.IO.StreamWriter クラスは Mono の System.IO.StreamWriter と互換性があります
  • WinRTLegacy.Xml.XmlReader クラスは Mono の System.Xml.XmlReader と互換性があります
  • WinRTLegacy.Xml.XmlWriter クラスは Mono の System.Xml.XmlWriter と互換性があります

名前空間が一致しない場合に、代替案として WinRTLegacy のクラスを使用するもっともシンプルな方法は以下のようにディレクティブを使用することです。

#if NETFX_CORE
using XmlReader = WinRTLegacy.Xml.XmlReader;
#else
using XmlReader = System.Xml.XmlReader;
#endif

このようにして、XmlReader クラスを使用できます。XmlReader クラスは、ユニバーサル Windows プラットフォームの WinRTLegacy.Xml 名前空間と、そのほかの場所の System.Xml 名前空間から取得可能です。


• 2017–05–16 編集レビュー 無しに修正されたページ - ページのフィードバックを残す

ユニバーサル Windows プラットフォーム: .NET スクリプティングバックエンドで生成されるプロジェクト
ユニバーサル Windows プラットフォーム: .NET スクリプトバックエンドのプラグイン