/// <summary> /// 获取实际类型的值,object接收 /// </summary> public static object GetObjectValue(string type, string value) { Object ret = null; string lowerType = type.ToLower(); if (parseObjectValueMap.TryGetValue(lowerType, out Func <string, object> func)) { ret = func?.Invoke(value); } else { Type clrType = Type.GetType(type); bool existType = clrType != null; if (existType) { IBinaryParserCustom stringParse = System.Activator.CreateInstance(clrType) as IBinaryParserCustom; existType &= (stringParse != null); if (existType) { ret = stringParse.ParseToObject(value, '|'); } } if (!existType) { Console.WriteLine(string.Format("{0} dont have parse function!", type)); } } return(ret); }
public void Write(string type, object value) { if (type == "System.Int32") { Write(Convert.ToInt32(value)); } else if (type == "System.UInt32") { Write(Convert.ToUInt32(value)); } else if (type == "System.Int16") { Write(Convert.ToInt16(value)); } else if (type == "System.UInt16") { Write(Convert.ToUInt16(value)); } else if (type == "System.Int64") { Write(Convert.ToInt64(value)); } else if (type == "System.UInt64") { Write(Convert.ToUInt64(value)); } else if (type == "System.SByte") { Write(Convert.ToSByte(value)); } else if (type == "System.Byte") { Write(Convert.ToByte(value)); } else if (type == "System.Boolean") { Write(Convert.ToBoolean(value)); } else if (type == "System.String") { Write(Convert.ToString(value)); } else if (type == "System.Single") { Write(Convert.ToSingle(value)); } else if (type == "System.Double") { Write(Convert.ToDouble(value)); } else if (type == "int") { Write(Convert.ToInt32(value)); } else if (type == "uint") { Write(Convert.ToUInt32(value)); } else if (type == "int16") { Write(Convert.ToInt16(value)); } else if (type == "uint16") { Write(Convert.ToUInt16(value)); } else if (type == "short") { Write(Convert.ToInt16(value)); } else if (type == "ushort") { Write(Convert.ToUInt16(value)); } else if (type == "int64") { Write(Convert.ToInt64(value)); } else if (type == "uint64") { Write(Convert.ToUInt64(value)); } else if (type == "long") { Write(Convert.ToInt64(value)); } else if (type == "ulong") { Write(Convert.ToUInt64(value)); } else if (type == "sbyte") { Write(Convert.ToSByte(value)); } else if (type == "byte") { Write(Convert.ToByte(value)); } else if (type == "bool") { Write(Convert.ToBoolean(value)); } else if (type == "string") { Write(Convert.ToString(value)); } else if (type == "float") { Write(Convert.ToSingle(value)); } else if (type == "double") { Write(Convert.ToDouble(value)); } else { IBinaryParserCustom ob = value as IBinaryParserCustom; Write(ob); } }