/// <summary> /// 根据对象ToString()转化成类类型,适用于结构,类 /// </summary> /// <param name="valueType">类型的ToString()</param> /// <returns></returns> public static Type GetType(string valueType) { DMSConverter converter = ConverterList.Where(q => q.TypeString == valueType).FirstOrDefault(); if (converter != null) { return(converter.ElementType); } return(null); }
/// <summary> /// 获取类型的ToString() /// </summary> /// <param name="type">当前要转化的对象类型</param> /// <returns></returns> public static string GetString(Type type) { DMSConverter converter = ConverterList.Where(q => q.ElementType == type).FirstOrDefault(); if (converter != null) { return(converter.TypeString); } return(string.Empty); }
/// <summary> /// 从BYTE数组转化成对象 /// </summary> /// <param name="type">当前要转化的对象类型</param> /// <param name="buff">字节数组</param> /// <param name="offset">转化的位置</param> /// <returns></returns> public static object Parse(Type type, byte[] buff, ref int offset) { DMSConverter converter = ConverterList.Where(q => q.ElementType == type).FirstOrDefault(); if (converter != null) { object value = converter.Parse(buff, offset); offset = converter.Offset; return(value); } return(null); }
/// <summary> /// 从对象转化成BYTE数组 /// </summary> /// <param name="type">当前要转化的对象类型</param> /// <param name="obj">转化的对象</param> /// <returns></returns> public static byte[] ToBytes(Type type, object obj) { if (type.IsEnum) { type = typeof(int); } DMSConverter converter = ConverterList.Where(q => q.ElementType == type).FirstOrDefault(); if (converter != null) { byte[] value = converter.GetBytes(obj); return(value); } throw new DMSFrameException(string.Format("Not Support the Type {0} !", type)); }