EmDllEx - dll的后缀

2017-02-18 11:27:47  访问(2757) 赞(0) 踩(0)



/*

dll = 1
exe

*/

using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Reflection;

namespace SlowX.ZXPageCore.Enums
{
    /// <summary>
    /// dll的后缀
    /// </summary>
    [Serializable]
    public partial class DllEx
    {
        /// <summary>
        /// $Em.DllEx
        /// </summary>
        public const string _SortClassName = "$Em.DllEx";

        #region 枚举显示表达式

        /// <summary>
        /// 显示表达式
        /// </summary>
        public enum EmShowExpress
        {
            
            /// <summary>
            /// 默认
            /// </summary>
            默认= 1
        }

        #endregion 枚举显示表达式

        #region Enum

        /// <summary>
        /// dll的后缀
        /// </summary>
        public enum EmDllEx
        {

            /// <summary>
            /// dll
            /// </summary>
            dll = 1,
            /// <summary>
            /// exe
            /// </summary>
            exe
        }

        #endregion Enum

        /// <summary>
        /// 构造函数
        /// </summary>
        public DllEx()
        {

        }

        /// <summary>
        /// 数组
        /// </summary>
        public readonly static EmDllEx[] EmArray = new EmDllEx[]
        {
EmDllEx.dll,
EmDllEx.exe

        };


        /// <summary>
        /// typeof(DllEx) 当前DllEx的type值
        /// </summary>
        public readonly static Type curType = typeof(DllEx);

        /// <summary>
        /// typeof(DllEx).FullName 
        /// </summary>
        public readonly static string curTypeFullName = curType.FullName;


        /// <summary>
        /// typeof(EmDllEx) 当前枚举EmDllEx的type值
        /// </summary>
        public readonly static Type curEnumType = typeof(EmDllEx);

        /// <summary>
        /// typeof(EmDllEx).FullName
        /// </summary>
        public readonly static string curEnumTypeFullName = curEnumType.FullName;


        /// <summary>
        /// 默认的枚举值
        /// </summary>
        public static readonly EmDllEx defaultEm = EmDllEx.dll;

        /// <summary>
        /// 默认的枚举值
        /// </summary>
        private static Dictionary<EmShowExpress, DataTable> dictionaryDataTableValue = CreateDataTable();

        /// <summary>
        /// 获得Text的数组
        /// </summary>
        /// <returns></returns>
        public static string[] GetTextArray()
        {
            EmDllEx[] emA = EmArray;
            int iLen = emA.Length;
            string[] theResult = new string[iLen];

            for (int i = 0; i < iLen; ++i)
            {
                theResult[i] = emA[i].ToString();
            }

            return theResult;
        }

        /// <summary>
        /// 获得显示名称
        /// </summary>
        /// <param name="em"></param>
        /// <returns></returns>
        public static string GetShowName
            (
                EmDllEx em
            )
        {
            return em.ToString();
        }


        /// <summary>
        /// 
        /// </summary>
        /// <param name="em"></param>
        /// <param name="curEmShowExpress"></param>
        /// <returns></returns>
        public static string GetShowName
            (
                EmDllEx em,
                EmShowExpress curEmShowExpress
            )
        {
                 
            if (curEmShowExpress == EmShowExpress.默认)
                return em.ToString();
            else
                return em.ToString();

        }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="strValues"></param>
        /// <param name="valueLinkChar"></param>
        /// <param name="textLinkChar"></param>
        /// <returns></returns>
        public static string GetShowNames
            (
                string strValues,
                string valueLinkChar,
                string textLinkChar
            )
        {
            if (strValues == null || strValues.Length == 0)
                return "";

            string[] sArray = strValues.Split(valueLinkChar.ToCharArray());

            StringBuilder theResult = new StringBuilder();
            bool isFirst = true;

            foreach (string s in sArray)
            {
                if (s == null || s.Length == 0)
                    continue;

                if (isFirst)
                {
                    isFirst = false;
                }
                else
                {
                    theResult.Append(textLinkChar);
                }

                theResult.Append
                    (
                        GetShowName
                            (
                                GetEmByString(s) 
                            )
                    );
            }

            return theResult.ToString();
        }


        /// <summary>
        /// 
        /// </summary>
        /// <param name="strValues"></param>
        /// <param name="valueLinkChar"></param>
        /// <param name="textLinkChar"></param>
        /// <returns></returns>
        public static string GetShowNames
            (
                string strValues,
                string valueLinkChar,
                string textLinkChar,
                EmShowExpress curEmShowExpress
            )
        {
            if (strValues == null || strValues.Length == 0)
                return "";

            string[] sArray = strValues.Split(valueLinkChar.ToCharArray());

            StringBuilder theResult = new StringBuilder();
            bool isFirst = true;

            foreach (string s in sArray)
            {
                if (s == null || s.Length == 0)
                    continue;

                if (isFirst)
                {
                    isFirst = false;
                }
                else
                {
                    theResult.Append(textLinkChar);
                }

                theResult.Append
                    (
                        GetShowName
                            (
                                GetEmByString(s),
                                curEmShowExpress
                            )
                    );
            }

            return theResult.ToString();
        }

        /// <summary>
        /// 创建数据表
        /// </summary>
        /// <returns></returns>
        private static Dictionary<EmShowExpress, DataTable> CreateDataTable()
        {
            Dictionary<EmShowExpress, DataTable> theResult = new Dictionary<EmShowExpress, DataTable>();

            theResult.Add(EmShowExpress.默认, CreateDataTableByEmShowExpress(EmShowExpress.默认));


            return theResult;
        }

        /// <summary>
        /// 创建数据表
        /// </summary>
        /// <param name="curEmShowExpress"></param>
        /// <returns></returns>
        private static DataTable CreateDataTableByEmShowExpress(EmShowExpress curEmShowExpress)
        {
            DataTable dt = new DataTable();

            dt.Columns.Add("ID", typeof(int));
            dt.Columns.Add("TheName");

            EmDllEx[] emA = EmArray;

            DataRow dr = null;

            foreach (EmDllEx em in emA)
            {
                dr = dt.NewRow();

                dt.Rows.Add(dr);

                dr["ID"] = (int)em;
                dr["TheName"] = GetShowName(em, curEmShowExpress);
            }

            return dt;
        }

        /// <summary>
        /// 获得DataTable
        /// </summary>
        /// <returns></returns>
        public static DataTable ReturnDataTable()
        {
            return dictionaryDataTableValue[EmShowExpress.默认];
        }

        /// <summary>
        /// 获得DataTable
        /// </summary>
        /// <returns></returns>
        public static DataTable GetDataTable()
        {
            return dictionaryDataTableValue[EmShowExpress.默认];
        }

        /// <summary>
        /// 获得DataTable
        /// </summary>
        /// <param name="curEmShowExpress"></param>
        /// <returns></returns>
        public static DataTable GetDataTable(EmShowExpress curEmShowExpress)
        {
            return dictionaryDataTableValue[curEmShowExpress];
        }

        /// <summary>
        /// 获得数据集
        /// </summary>
        /// <param name="fromCache"></param>
        /// <returns></returns>
        public static DataTable GetDataTable(bool fromCache)
        {
            if (fromCache)
                return dictionaryDataTableValue[EmShowExpress.默认];
            else
                return CreateDataTableByEmShowExpress(EmShowExpress.默认);
        }


        /// <summary>
        /// 获得数据集
        /// </summary>
        /// <param name="curEmShowExpress"></param>
        /// <param name="fromCache"></param>
        /// <returns></returns>
        public static DataTable GetDataTable(EmShowExpress curEmShowExpress,bool fromCache)
        {
            if (fromCache)
                return dictionaryDataTableValue[curEmShowExpress];
            else
                return CreateDataTableByEmShowExpress(curEmShowExpress);
        }

        /// <summary>
        /// 获得枚举
        /// </summary>
        /// <param name="theValue"></param>
        /// <returns></returns>
        public static EmDllEx GetEmByInt(int theValue)
        {
            EmDllEx[] emA = EmArray;

            foreach (EmDllEx em in emA)
            {
                if (theValue == (int)em)
                    return em;
            }

            MethodBase methodBaseValue = MethodBase.GetCurrentMethod();

            throw new Exception("Method :==> " + methodBaseValue.ReflectedType.FullName + " ~ " + methodBaseValue.ToString() + " Exception :==> " + "theValue = " + theValue.ToString() + "没有找到对应的枚举值。");
        }


        /// <summary>
        /// 获得枚举
        /// </summary>
        /// <param name="theValue"></param>
        /// <returns></returns>
        public static EmDllEx GetEmByLong(long theValue)
        {
            EmDllEx[] emA = EmArray;

            foreach (EmDllEx em in emA)
            {
                if (theValue == (long)em)
                    return em;
            }

            MethodBase methodBaseValue = MethodBase.GetCurrentMethod();

            throw new Exception("Method :==> " + methodBaseValue.ReflectedType.FullName + " ~ " + methodBaseValue.ToString() + " Exception :==> " + "theValue = " + theValue.ToString() + "没有找到对应的枚举值。");
        }

        /// <summary>
        /// 获得枚举
        /// </summary>
        /// <param name="theValue"></param>
        /// <returns></returns>
        public static EmDllEx GetEmByString(string theValue)
        {
            EmDllEx[] emA = EmArray;

            foreach (EmDllEx em in emA)
            {
                if (theValue == ((int)em).ToString())
                    return em;
            }

            MethodBase methodBaseValue = MethodBase.GetCurrentMethod();

            throw new Exception("Method :==> " + methodBaseValue.ReflectedType.FullName + " ~ " + methodBaseValue.ToString() + " Exception :==> " + "theValue = " + theValue.ToString() + "没有找到对应的枚举值。");

        }

        /// <summary>
        /// 获得枚举
        /// </summary>
        /// <param name="theValue"></param>
        /// <returns></returns>
        public static EmDllEx GetEmByObj(object theValue)
        {
            MethodBase methodBaseValue = null;

            if (theValue == null)
            {
                methodBaseValue = MethodBase.GetCurrentMethod();

                throw new Exception("Method :==> " + methodBaseValue.ReflectedType.FullName + " ~ " + methodBaseValue.ToString() + " Exception :==> " + "theValue为null,没有找到对应的枚举值。");
            }

            if (theValue is EmDllEx)
                return (EmDllEx)theValue;

            string strValue = theValue.ToString();

            if (strValue.Length == 0)
            {
                methodBaseValue = MethodBase.GetCurrentMethod();

                throw new Exception("Method :==> " + methodBaseValue.ReflectedType.FullName + " ~ " + methodBaseValue.ToString() + " Exception :==> " + "theValue为空,没有找到对应的枚举值。");
            }


            EmDllEx[] emA = EmArray;

            foreach (EmDllEx em in emA)
            {
                if (strValue == ((int)em).ToString())
                    return em;
            }

            methodBaseValue = MethodBase.GetCurrentMethod();

            throw new Exception("Method :==> " + methodBaseValue.ReflectedType.FullName + " ~ " + methodBaseValue.ToString() + " Exception :==> " + "theValue = " + strValue.ToString() + "没有找到对应的枚举值。");
        }

        /// <summary>
        /// 获得枚举
        /// </summary>
        /// <param name="theValue"></param>
        /// <returns></returns>
        public static EmDllEx GetDefaultEmByInt(int theValue)
        {
            EmDllEx[] emA = EmArray;

            foreach (EmDllEx em in emA)
            {
                if (theValue == (int)em)
                    return em;
            }

            return defaultEm;
        }

        /// <summary>
        /// 获得枚举
        /// </summary>
        /// <param name="theValue"></param>
        /// <returns></returns>
        public static EmDllEx GetDefaultEmByLong(long theValue)
        {
            EmDllEx[] emA = EmArray;

            foreach (EmDllEx em in emA)
            {
                if (theValue == (long)em)
                    return em;
            }

            return defaultEm;
        }


        /// <summary>
        /// 获得枚举
        /// </summary>
        /// <param name="theValue"></param>
        /// <returns></returns>
        public static EmDllEx GetDefaultEmByString(string theValue)
        {
            EmDllEx[] emA = EmArray;

            foreach (EmDllEx em in emA)
            {
                if (theValue == ((int)em).ToString())
                    return em;
            }

            return defaultEm;
        }

        /// <summary>
        /// 获得枚举
        /// </summary>
        /// <param name="theValue"></param>
        /// <returns></returns>
        public static EmDllEx GetDefaultEmByObj(object theValue)
        {
            if (theValue == null)
                return defaultEm;

            if (theValue is EmDllEx)
                return (EmDllEx)theValue;

            string strValue = theValue.ToString();

            if (strValue.Length == 0)
                return defaultEm;

            EmDllEx[] emA = EmArray;

            foreach (EmDllEx em in emA)
            {
                if (strValue == ((int)em).ToString())
                    return em;
            }

            return defaultEm;
        }

        /// <summary>
        /// 获得枚举
        /// </summary>
        /// <param name="theValue"></param>
        /// <param name="defaultValue"></param>
        /// <returns></returns>
        public static EmDllEx GetDefaultEmByInt(int theValue, EmDllEx defaultValue)
        {
            EmDllEx[] emA = EmArray;

            foreach (EmDllEx em in emA)
            {
                if (theValue == (int)em)
                    return em;
            }

            return defaultValue;
        }

        /// <summary>
        /// 获得枚举
        /// </summary>
        /// <param name="theValue"></param>
        /// <param name="defaultValue"></param>
        /// <returns></returns>
        public static EmDllEx GetDefaultEmByLong(long theValue, EmDllEx defaultValue)
        {
            EmDllEx[] emA = EmArray;

            foreach (EmDllEx em in emA)
            {
                if (theValue == (long)em)
                    return em;
            }

            return defaultValue;
        }


        /// <summary>
        /// 获得枚举
        /// </summary>
        /// <param name="theValue"></param>
        /// <param name="defaultValue"></param>
        /// <returns></returns>
        public static EmDllEx GetDefaultEmByString(string theValue, EmDllEx defaultValue)
        {
            EmDllEx[] emA = EmArray;

            foreach (EmDllEx em in emA)
            {
                if (theValue == ((int)em).ToString())
                    return em;
            }

            return defaultValue;
        }

        /// <summary>
        /// 获得枚举
        /// </summary>
        /// <param name="theValue"></param>
        /// <param name="defaultValue"></param>
        /// <returns></returns>
        public static EmDllEx GetDefaultEmByObj(object theValue, EmDllEx defaultValue)
        {
            if (theValue == null)
                return defaultValue;

            string strValue = theValue.ToString();

            if (strValue.Length == 0)
                return defaultValue;

            EmDllEx[] emA = EmArray;

            foreach (EmDllEx em in emA)
            {
                if (strValue == ((int)em).ToString())
                    return em;
            }

            return defaultValue;
        }

        /// <summary>
        /// 获得Text 获得EmDllEx 
        /// </summary>
        /// <param name="theText"></param>
        /// <returns></returns>
        public static EmDllEx GetEmByText(string theText)
        {
            MethodBase methodBaseValue = null;

            if (theText == null)
            {
                methodBaseValue = MethodBase.GetCurrentMethod();

                throw new Exception("Method :==> " + methodBaseValue.ReflectedType.FullName + " ~ " + methodBaseValue.ToString() + " Exception :==> " + "theText为null,没有找到对应的枚举值。");
            }

            if (theText.Length == 0)
            {
                methodBaseValue = MethodBase.GetCurrentMethod();

                throw new Exception("Method :==> " + methodBaseValue.ReflectedType.FullName + " ~ " + methodBaseValue.ToString() + " Exception :==> " + "theText为空,没有找到对应的枚举值。");
            }

            EmDllEx[] emA = EmArray;

            foreach (EmDllEx em in emA)
            {
                if (theText == (em).ToString())
                    return em;
            }

            methodBaseValue = MethodBase.GetCurrentMethod();

            throw new Exception("Method :==> " + methodBaseValue.ReflectedType.FullName + " ~ " + methodBaseValue.ToString() + " Exception :==> " + "theText = " + theText.ToString() + "没有找到对应的枚举值。");
        }


        /// <summary>
        /// 获得Text 获得EmDllEx 
        /// </summary>
        /// <param name="theText"></param>
        /// <param name="defaultValue"></param>
        /// <returns></returns>
        public static EmDllEx GetDefaultEmByText(string theText, EmDllEx defaultValue)
        {
            if (theText == null)
                return defaultValue;

            if (theText.Length == 0)
                return defaultValue;

            EmDllEx[] emA = EmArray;

            foreach (EmDllEx em in emA)
            {
                if (theText == (em).ToString())
                    return em;
            }

            return defaultValue;
        }

        /// <summary>
        /// 获得枚举
        /// </summary>
        /// <param name="theValue"></param> 
        /// <returns></returns>
        public static EmDllEx GetEmByAllObj(object theValue)
        {
            MethodBase methodBaseValue = null;

            if (theValue == null)
            {
                methodBaseValue = MethodBase.GetCurrentMethod();

                throw new Exception("Method :==> " + methodBaseValue.ReflectedType.FullName + " ~ " + methodBaseValue.ToString() + " Exception :==> " + "theValue为null,没有找到对应的枚举值。");
            }

            if (theValue is EmDllEx)
                return (EmDllEx)theValue;

            string strValue = theValue.ToString();

            if (strValue.Length == 0)
            {
                methodBaseValue = MethodBase.GetCurrentMethod();

                throw new Exception("Method :==> " + methodBaseValue.ReflectedType.FullName + " ~ " + methodBaseValue.ToString() + " Exception :==> " + "theValue为空,没有找到对应的枚举值。");
            }


            EmDllEx[] emA = EmArray;

            foreach (EmDllEx em in emA)
            {
                if (strValue == ((int)em).ToString() || strValue == em.ToString())
                    return em;
            }

            methodBaseValue = MethodBase.GetCurrentMethod();

            throw new Exception("Method :==> " + methodBaseValue.ReflectedType.FullName + " ~ " + methodBaseValue.ToString() + " Exception :==> " + "theValue = " + strValue.ToString() + "没有找到对应的枚举值。");
        
        }

        /// <summary>
        /// 获得枚举
        /// </summary>
        /// <param name="theValue"></param>
        /// <param name="defaultValue"></param>
        /// <returns></returns>
        public static EmDllEx GetDefaultEmByAllObj(object theValue, EmDllEx defaultValue)
        {
            if (theValue == null)
                return defaultValue;

            string strValue = theValue.ToString();

            if (strValue.Length == 0)
                return defaultValue;

            EmDllEx[] emA = EmArray;

            foreach (EmDllEx em in emA)
            {
                if (strValue == ((int)em).ToString() || strValue == em.ToString())
                    return em;
            }

            return defaultValue;
        }

    }

        
}




标签:EmDllEx - dll的后缀 

上一条:

下一条:


 

相关评论

评论加载中……
 

发表评论

类型:
内容:
  (Alt+Enter)