Universal Windows Platform: Generated project with .NET scripting backend
Universal Windows Platform: Plugins on .NET Scripting Backend
Universal Windows Platform: Missing .NET Types on .NET Scripting Backend
The .NET scripting backend that is used on Universal Windows Apps 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 Universal Windows Platform 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.
Types, provided by Unity include:
- 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
In addition to these a namespace WinRTLegacy is added to provide additional classes and extention methods. Among there are:
- Extention methods Close() for most System.IO classes (alternatively you can use Dispose(), which is available on both Mono and .NET for Universal Windows Platform)
- WinRTLegacy.TypeExtensions has methods GetConstructor(), GetMethod(), GetProperty() for System.Type
- WinRTLegacy.IO.StreamReader class, that is compatible with Mono System.IO.StreamReader
- WinRTLegacy.IO.StreamWriter class, that is compatible with Mono System.IO.StreamWriter
- WinRTLegacy.Xml.XmlReader class, that is compatible with Mono System.Xml.XmlReader
- WinRTLegacy.Xml.XmlWriter class, that is compatible with Mono System.Xml.XmlWriter
The simplest way to use the replacement classes from WinRTLegacy if the namespace doesn’t match 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 Universal Windows Platform and from System.Xml namespace elsewhere.
• 2017–05–16 Page amended with no editorial review
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Is something described here not working as you expect it to? It might be a Known Issue. Please check with the Issue Tracker at issuetracker.unity3d.com.
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thanks for helping to make the Unity documentation better!
Universal Windows Platform: Generated project with .NET scripting backend
Universal Windows Platform: Plugins on .NET Scripting Backend