private static string[] ParseWindowsTypeName(string name) { int partCount; IntPtr[] partPtrs = null; string[] parts; try { WinRT.RoParseTypeName(name, out partCount, out partPtrs); parts = new string[partPtrs.Length]; for (int i = 0; i < partPtrs.Length; i++) { parts[i] = WindowsRuntimeMarshal.PtrToStringHString(partPtrs[i]); } } finally { if (partPtrs != null) { for (int i = 0; i < partPtrs.Length; i++) { if (partPtrs[i] != null) { WindowsRuntimeMarshal.FreeHString(partPtrs[i]); } } } } return(parts); //List<string> parts = new List<string>(); //int position = 0; //ParseWindowsTypeName(name, ref position, ref parts); //return parts.ToArray(); }