Version: 5.5
Приложения Windows Store: Типы проектов
Приложения Windows Store: Плагины

Приложения Windows Store: Отсутствующие типы .NET

В частности, отсутствуют некоторые данные и некоторые классы не содержат некоторых методов, которые есть в том же классе в Mono.

Для упрощения портирования существующих игр под платформу Windows Store, некоторые из отсутствующих типов .NET предоставляются самим Unity. В дополнение, для упрощения миграции были добавлены некоторые методы расширения и типы замены.

These types are placed in PlaybackEngines\metrosupport\Managed\WinRTLegacy.dll, every Windows Store SDK has its own 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 для предоставления дополнительных классов и методов расширения. Среди них есть такие:

  • Методы расширения Close() для большинства классов System.IO (либо вы можете использовать Dispose(), который доступен и в Mono и в .NET для приложений Windows Store)
  • WinRTLegacy.TypeExtensions has methods GetConstructor(), GetMethod(), GetProperty() for System.Type
  • Класс WinRTLegacy.Xml.XmlReader, который совместим с System.Xml.XmlReader в Mono
  • Класс WinRTLegacy.Xml.XmlWriter , который совместим с System.Xml.XmlWriter в Mono
  • Класс WinRTLegacy.Xml.XmlReader, который совместим с System.Xml.XmlReader в Mono
  • Класс WinRTLegacy.Xml.XmlWriter , который совместим с System.Xml.XmlWriter в Mono

Проще всего задействовать классы замены из WinRTLegacy с помощью директивы:

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

Таким образом вы можете использовать класс XmlReader, который будет взят из пространства имён WinRTLegacy.Xml в Windows Store приложениях и из пространства имён System.Xml на других платформах.

Universal Windows 10 Apps

Some of the types were brought back to .NET for Universal Windows 10 Apps, thus implementations for these types were removed in WinRTLegacy.dll

Приложения Windows Store: Типы проектов
Приложения Windows Store: Плагины