/// <summary> /// The convert operation parameter. /// </summary> /// <param name="paramterInfo">The paramter info.</param> /// <param name="value">The value.</param> /// <returns><paramref name = "value" /> or a Guid if value is 16 bytes.</returns> public bool TryConvertParameter(ObjectMemberInfo <DataMemberAttribute> paramterInfo, ref object value) { if (!paramterInfo.ValueType.IsAssignableFrom(typeof(Guid)) || (paramterInfo.ValueType == typeof(object))) { return(true); } if (value is Guid) { return(true); } byte[] b = value as byte[]; if ((b != null) && (b.Length == 0x10)) { value = new Guid(b); return(true); } string g = value as string; if (g != null) { value = new Guid(g); return(true); } return(false); }
// Methods public static bool TryConvertOperationParameter(ObjectMemberInfo <DataMemberAttribute> paramterInfo, ref object value) { if (paramterInfo.TypeCode != TypeCode.Object) { return(TryConvertParamter(paramterInfo.TypeCode, ref value)); } if (paramterInfo.ValueType == typeof(Hashtable)) { return(value is Hashtable); } if (paramterInfo.ValueType == typeof(Guid)) { return(TryConvertToGuid(ref value)); } if (paramterInfo.ValueType.IsArray) { IList array = value as IList; if (array == null) { return(false); } switch (Type.GetTypeCode(paramterInfo.ValueType.GetElementType())) { case TypeCode.Byte: return(TryConvertToByteArray(ref value, array)); case TypeCode.Int16: return(TryConvertToShortArray(ref value, array)); case TypeCode.Int32: return(TryConvertToIntArray(ref value, array)); case TypeCode.Int64: return(TryConvertToLongArray(ref value, array)); case TypeCode.Single: return(TryConvertToSingleArray(ref value, array)); case TypeCode.Double: return(TryConvertToDoubleArray(ref value, array)); case TypeCode.String: return(TryConvertToStringArray(ref value, array)); } if (paramterInfo.ValueType == typeof(Hashtable[])) { return(TryConvertToHashtableArray(ref value, array)); } } if (paramterInfo.ValueType == typeof(List <int>)) { return(TryConvertToIntList(ref value)); } return(true); }
public virtual bool TryConvertParameter(ObjectMemberInfo <DataMemberAttribute> paramterInfo, ref object value) { if (paramterInfo.ValueType == typeof(Guid)) { if (value is Guid) { return(true); } byte[] buffer = value as byte[]; if ((buffer != null) && (buffer.Length == 0x10)) { value = new Guid(buffer); return(true); } string str = value as string; if (str != null) { value = new Guid(str); return(true); } return(false); } if (paramterInfo.ValueType != typeof(Guid?)) { return(true); } if (value is Guid?) { return(true); } byte[] b = value as byte[]; if ((b != null) && (b.Length == 0x10)) { value = new Guid(b); return(true); } string g = value as string; if (g != null) { value = new Guid(g); return(true); } return(false); }
public override bool TryConvertParameter(ObjectMemberInfo <DataMemberAttribute> paramterInfo, ref object value) { return(Amf3Protocol.HeaderV2Instance.TryConvertParameter(paramterInfo, ref value)); }
/// <summary> /// The try convert operation parameter. /// </summary> /// <param name="paramterInfo"> The paramter info.</param> /// <param name="value">The value.</param> /// <returns>true if operation parameter.</returns> public bool TryConvertParameter(ObjectMemberInfo <DataMemberAttribute> paramterInfo, ref object value) { try { if (paramterInfo.TypeCode != TypeCode.Object) { if (value is int) { switch (paramterInfo.TypeCode) { case TypeCode.Byte: value = (byte)((int)value); return(true); case TypeCode.Int16: value = (short)((int)value); return(true); case TypeCode.Int32: value = (int)value; return(true); case TypeCode.Int64: value = (int)value; return(true); case TypeCode.Single: value = (int)value; return(true); case TypeCode.Double: value = (int)value; return(true); } } else if (value is double) { switch (paramterInfo.TypeCode) { case TypeCode.Byte: value = (byte)((double)value); return(true); case TypeCode.Int16: value = (short)((double)value); return(true); case TypeCode.Int32: value = (int)((double)value); return(true); case TypeCode.Int64: value = (long)((double)value); return(true); case TypeCode.Single: value = (float)((double)value); return(true); case TypeCode.Double: value = (double)value; return(true); } } } else { if (paramterInfo.ValueType.IsAssignableFrom(typeof(Guid)) && (paramterInfo.ValueType != typeof(object))) { if (value is Guid) { return(true); } byte[] b = value as byte[]; if ((b != null) && (b.Length == 0x10)) { value = new Guid(b); return(true); } string g = value as string; if (g != null) { value = new Guid(g); return(true); } return(false); } if (paramterInfo.ValueType == typeof(double[])) { object[] objArray = value as object[]; if (objArray == null) { return(false); } double[] numArray = new double[objArray.Length]; for (int i = 0; i < objArray.Length; i++) { numArray[i] = Convert.ToDouble(objArray[i]); } value = numArray; return(true); } if (paramterInfo.ValueType == typeof(int[])) { object[] objArray2 = value as object[]; if (objArray2 == null) { return(false); } int[] numArray2 = new int[objArray2.Length]; for (int j = 0; j < objArray2.Length; j++) { numArray2[j] = Convert.ToInt32(objArray2[j]); } value = numArray2; return(true); } if (paramterInfo.ValueType == typeof(long[])) { object[] objArray3 = value as object[]; if (objArray3 == null) { return(false); } long[] numArray3 = new long[objArray3.Length]; for (int k = 0; k < objArray3.Length; k++) { if (objArray3[k] is double) { numArray3[k] = (long)((double)objArray3[k]); } else { numArray3[k] = (int)objArray3[k]; } } value = numArray3; return(true); } if (paramterInfo.ValueType == typeof(short[])) { object[] objArray4 = value as object[]; if (objArray4 == null) { return(false); } short[] numArray4 = new short[objArray4.Length]; for (int m = 0; m < objArray4.Length; m++) { numArray4[m] = (short)((int)objArray4[m]); } value = numArray4; return(true); } if (paramterInfo.ValueType == typeof(float[])) { object[] objArray5 = value as object[]; if (objArray5 == null) { return(false); } float[] numArray5 = new float[objArray5.Length]; for (int n = 0; n < objArray5.Length; n++) { numArray5[n] = Convert.ToSingle(objArray5[n]); } value = numArray5; return(true); } if (paramterInfo.ValueType == typeof(string[])) { object[] objArray6 = value as object[]; if (objArray6 == null) { return(false); } string[] strArray = new string[objArray6.Length]; for (int num6 = 0; num6 < objArray6.Length; num6++) { strArray[num6] = (string)objArray6[num6]; } value = strArray; return(true); } if (paramterInfo.ValueType == typeof(Hashtable[])) { object[] objArray7 = value as object[]; if (objArray7 == null) { return(false); } Hashtable[] hashtableArray = new Hashtable[objArray7.Length]; for (int num7 = 0; num7 < objArray7.Length; num7++) { hashtableArray[num7] = (Hashtable)objArray7[num7]; } value = hashtableArray; return(true); } } return(true); } catch (Exception exception) { if (log.IsWarnEnabled) { log.Warn(exception); } return(false); } }
/// <summary> /// The try convert operation parameter. /// </summary> /// <param name = "paramterInfo"> /// The paramter info. /// </param> /// <param name = "value"> /// The value. /// </param> /// <returns> /// Always true. /// </returns> public bool TryConvertOperationParameter(ObjectMemberInfo<DataMemberAttribute> paramterInfo, ref object value) { return true; }
/// <summary> /// The try convert operation parameter. /// </summary> /// <param name = "paramterInfo"> /// The paramter info. /// </param> /// <param name = "value"> /// The value. /// </param> /// <returns> /// Always true. /// </returns> public bool TryConvertOperationParameter(ObjectMemberInfo <DataMemberAttribute> paramterInfo, ref object value) { return(true); }