diff --git a/src/net/Qml.Net/Extensions/INetJsValueExtensions.cs b/src/net/Qml.Net/Extensions/INetJsValueExtensions.cs index 3d15ce41..2f2cc0df 100644 --- a/src/net/Qml.Net/Extensions/INetJsValueExtensions.cs +++ b/src/net/Qml.Net/Extensions/INetJsValueExtensions.cs @@ -1,4 +1,6 @@ using System.Collections.Generic; +using System.ComponentModel; +using System.Globalization; namespace Qml.Net.Extensions { @@ -17,23 +19,19 @@ namespace Qml.Net.Extensions return null; } + var destinationConverter = TypeDescriptor.GetConverter(typeof(T)); + var list = new List(); - try - { - var length = (int)value.GetProperty("length"); - for (var i = 0; i < length; i++) - { - var item = value.GetItemAtIndex(i); - list.Add((T)item); - } + var length = (int)value.GetProperty("length"); - return list; - } - catch + for (var i = 0; i < length; i++) { - return null; + var item = value.GetItemAtIndex(i); + list.Add((T)destinationConverter.ConvertFrom(null, CultureInfo.InvariantCulture, item)); } + + return list; } } } \ No newline at end of file