-Updated source code to VS2010
-Updated main project to .NET 4.0 -Updated to psake 4.0 -Changed assembly version to 4.0.0.0 -Added ICustomTypeDescriptor implementation to JObject, removed JTypeDescriptionProvider and JTypeDescriptor -Changed serialization of collections to use iterator rather than indexer -Removed Compact Framework project -Fixed XML documentation warnings
This commit is contained in:
@@ -25,6 +25,7 @@
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using Newtonsoft.Json.Utilities;
|
||||
using System.Collections;
|
||||
@@ -74,15 +75,22 @@ namespace Newtonsoft.Json.Serialization
|
||||
|| UnderlyingType.IsArray)
|
||||
return new CollectionWrapper<object>((IList)list);
|
||||
|
||||
if (_genericWrapperType == null)
|
||||
if (_genericCollectionDefinitionType != null)
|
||||
{
|
||||
_genericWrapperType = ReflectionUtils.MakeGenericType(typeof(CollectionWrapper<>), CollectionItemType);
|
||||
if (_genericWrapperType == null)
|
||||
{
|
||||
_genericWrapperType = ReflectionUtils.MakeGenericType(typeof (CollectionWrapper<>), CollectionItemType);
|
||||
|
||||
ConstructorInfo genericWrapperConstructor = _genericWrapperType.GetConstructor(new[] { _genericCollectionDefinitionType });
|
||||
_genericWrapperCreator = JsonTypeReflector.ReflectionDelegateFactory.CreateMethodCall<object>(genericWrapperConstructor);
|
||||
ConstructorInfo genericWrapperConstructor = _genericWrapperType.GetConstructor(new[] {_genericCollectionDefinitionType});
|
||||
_genericWrapperCreator = JsonTypeReflector.ReflectionDelegateFactory.CreateMethodCall<object>(genericWrapperConstructor);
|
||||
}
|
||||
|
||||
return (IWrappedCollection) _genericWrapperCreator(null, list);
|
||||
}
|
||||
else
|
||||
{
|
||||
return new CollectionWrapper<object>((IList<object>)((IEnumerable)list).Cast<object>().ToList());
|
||||
}
|
||||
|
||||
return (IWrappedCollection)_genericWrapperCreator(null, list);
|
||||
}
|
||||
|
||||
private bool IsTypeGenericCollectionInterface(Type type)
|
||||
|
||||
Reference in New Issue
Block a user