private object SimpleSerializer(Type current) { if (TypeInitializerStatic.IsTypeRegistered(current)) { return(Activator.CreateInstance(typeof(ModelsSerializer <>).MakeGenericType(current), new object[] { TypeInitializer })); } return(null); }
private object CollectionSerializer(Type current) { if (current.IsGenericType) { Type genericDefinition = current.GetGenericTypeDefinition(); Type genericArgument = current.GetGenericArguments()[0]; if (TypeInitializerStatic.IsTypeRegistered(genericArgument)) { if (genericDefinition == typeof(ICollection <>)) { return(Activator.CreateInstance( typeof(TrackingICollectionSerializer <>).MakeGenericType(genericArgument))); } else if (genericDefinition == typeof(IList <>)) { return(Activator.CreateInstance( typeof(TrackingIListSerializer <>).MakeGenericType(genericArgument))); } } } return(null); }