Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
        /// <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);
        }
Exemplo n.º 3
0
        /// <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);
        }
Exemplo n.º 4
0
        /// <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));
        }