diff --git a/Tweetinvi/JsonExtensions.cs b/Tweetinvi/JsonExtensions.cs index 733cf21d4..fc6256f61 100644 --- a/Tweetinvi/JsonExtensions.cs +++ b/Tweetinvi/JsonExtensions.cs @@ -90,18 +90,32 @@ public static string ToJson(this T obj) where T : class var type = typeof(T); object toSerialize = obj; - if (_getSerializableObject.ContainsKey(type)) + var serializer = GetSerializer(type); + + if (serializer != null) { toSerialize = _getSerializableObject[type].GetSerializableObject(obj); } else if (obj is IEnumerable && type.IsGenericType) { - var enumerable = (IEnumerable)obj; - var genericType = type.GetGenericArguments()[0]; - if (_getSerializableObject.ContainsKey(genericType)) + + Type genericType = null; + + if (type.IsGenericType) + { + genericType = type.GetGenericArguments()[0]; + } + else if (typeof(Array).IsAssignableFrom(type)) + { + genericType = type.GetElementType(); + } + + serializer = GetSerializer(genericType); + + if (serializer != null) { + var enumerable = (IEnumerable)obj; var list = new List(); - var serializer = _getSerializableObject[genericType]; foreach (var o in enumerable) {