The .NET scripting backend that is used on Windows Store is a special .NET version for this platform, which is not entirely compatible with Mono. In particular some data types are missing and some other classes don’t have certain methods, that the same classes do have in Mono.
To make porting existing games to Windows Store easier, some of the missing .NET types are provided by Unity. In addition some extension methods and replacement types were added to make migration easier.
These types are placed in PlaybackEngines\metrosupport\Managed\WinRTLegacy.dll, every Windows Store SDK has its own WinRTLegacy.dll.
Unity 提供的类型包括:
除此之外,还添加了命名空间 WinRTLegacy 以提供更多类和扩展方法。其中包括:
The simplest way to use the replacement classes from WinRTLegacy is via using directive:
# if NETFX_CORE
using XmlReader = WinRTLegacy.Xml.XmlReader;
# else
using XmlReader = System.Xml.XmlReader;
# endif
This way you can use XmlReader class, which will be taken from WinRTLegacy.Xml namespace on Windows Store and from System.Xml namespace elsewhere.
Some of the types were brought back to .NET for Universal Windows 10 Apps, thus implementations for these types were removed in WinRTLegacy.dll