SerializableType CompileNullableTypes(Type type) { if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(Nullable <>)) { Type[] argTypes = type.GetGenericArguments(); Fx.Assert(argTypes.Length == 1, "Nullable type must have one argument"); return(SerializableType.CreateNullableType(type, this.GetType(argTypes[0]))); } return(null); }