Skip to content

Commit

Permalink
#75 Support Array of concrete type for serialization
Browse files Browse the repository at this point in the history
  • Loading branch information
linvi committed Aug 14, 2016
1 parent 614f2e3 commit d368fac
Showing 1 changed file with 19 additions and 5 deletions.
24 changes: 19 additions & 5 deletions Tweetinvi/JsonExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -90,18 +90,32 @@ public static string ToJson<T>(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<object>();
var serializer = _getSerializableObject[genericType];

foreach (var o in enumerable)
{
Expand Down

0 comments on commit d368fac

Please sign in to comment.