public static NSJSValue ToArray(NSJSVirtualMachine machine, Type element, IList s) { if (machine == null) { return(null); } int count = s == null ? 0 : s.Count; NSJSArray array = null; if (element == typeof(byte)) { array = NSJSUInt8Array.New(machine, ToArray <byte>(s)); } else if (element == typeof(sbyte)) { array = NSJSInt8Array.New(machine, ToArray <sbyte>(s)); } else if (element == typeof(short)) { array = NSJSInt16Array.New(machine, ToArray <short>(s)); } else if (element == typeof(ushort)) { array = NSJSUInt16Array.New(machine, ToArray <ushort>(s)); } else if (element == typeof(int)) { array = NSJSInt32Array.New(machine, ToArray <int>(s)); } else if (element == typeof(uint)) { array = NSJSUInt32Array.New(machine, ToArray <uint>(s)); } else if (element == typeof(float)) { array = NSJSFloat32Array.New(machine, ToArray <float>(s)); } else if (element == typeof(double)) { array = NSJSFloat64Array.New(machine, ToArray <double>(s)); } else { array = NSJSArray.New(machine, count); for (int i = 0; i < count; i++) { array[i] = ObjectAuxiliary.ToObject(machine, s[i]); } } if (array == null) { return(NSJSValue.Null(machine)); } return(array); }
public static NSJSValue As(this object value, NSJSVirtualMachine machine) { if (machine == null) { return(null); } if (value == null || value == DBNull.Value) { return(NSJSValue.Null(machine)); } if (value is NSJSValue) { return(value as NSJSValue); } Type typeid = value.GetType(); if (typeid == typeof(int) || typeid == typeof(short) || typeid == typeof(sbyte) || typeid == typeof(char)) { return(NSJSInt32.New(machine, Convert.ToInt32(value))); } else if (typeid == typeof(uint) || typeid == typeof(ushort) || typeid == typeof(byte)) { return(NSJSUInt32.New(machine, Convert.ToUInt32(value))); } else if (typeid == typeof(string)) { return(NSJSString.New(machine, value.ToString())); } else if (typeid == typeof(bool)) { return(NSJSBoolean.New(machine, Convert.ToBoolean(value))); } else if (typeid == typeof(DateTime)) { DateTime datetime = Convert.ToDateTime(value); if (NSJSDateTime.Invalid(datetime)) { datetime = NSJSDateTime.Min; } return(NSJSDateTime.New(machine, datetime)); } else if (typeid == typeof(float) || typeid == typeof(double)) { return(NSJSDouble.New(machine, Convert.ToDouble(value))); } else if (typeid == typeof(byte[])) { byte[] buffer = (byte[])(object)value; if (buffer == null) { return(NSJSValue.Null(machine)); } return(NSJSUInt8Array.New(machine, buffer)); } else if (typeid == typeof(sbyte[])) { sbyte[] buffer = (sbyte[])(object)value; if (buffer == null) { return(NSJSValue.Null(machine)); } return(NSJSInt8Array.New(machine, buffer)); } else if (typeid == typeof(short[])) { short[] buffer = (short[])(object)value; if (buffer == null) { return(NSJSValue.Null(machine)); } return(NSJSInt16Array.New(machine, buffer)); } else if (typeid == typeof(ushort[])) { ushort[] buffer = (ushort[])(object)value; if (buffer == null) { return(NSJSValue.Null(machine)); } return(NSJSUInt16Array.New(machine, buffer)); } else if (typeid == typeof(int[])) { int[] buffer = (int[])(object)value; if (buffer == null) { return(NSJSValue.Null(machine)); } return(NSJSInt32Array.New(machine, buffer)); } else if (typeid == typeof(uint[])) { uint[] buffer = (uint[])(object)value; if (buffer == null) { return(NSJSValue.Null(machine)); } return(NSJSUInt32Array.New(machine, buffer)); } else if (typeid == typeof(float[])) { float[] buffer = (float[])(object)value; if (buffer == null) { return(NSJSValue.Null(machine)); } return(NSJSFloat32Array.New(machine, buffer)); } else if (typeid == typeof(double[])) { double[] buffer = (double[])(object)value; if (buffer == null) { return(NSJSValue.Null(machine)); } return(NSJSFloat64Array.New(machine, buffer)); } return(NSJSValue.Null(machine)); }