在项目开发中公共帮助类是必不可少的,这里记录一些自己摘录或自己编写的帮助类。
64位编码与解码:
#region URL的64位编码 ???????/// <summary> ???????/// URL的64位编码 ???????/// </summary> ???????/// <param name="sourthUrl"></param> ???????/// <returns></returns> ???????public static string Base64Encrypt(string sourthUrl) ???????{ ???????????string eurl = HttpUtility.UrlEncode(sourthUrl); ???????????eurl = Convert.ToBase64String(Encoding.Default.GetBytes(eurl)); ???????????return eurl; ???????} ???????#endregion ???????#region URL的64位解码 ????????/// <summary> ???????/// URL的64位解码 ????????/// </summary> ???????/// <param name="eStr"></param> ???????/// <returns></returns> ???????public static string Base64Decrypt(string eStr) ???????{ ???????????if (!IsBase64(eStr)) ???????????{ ???????????????return eStr; ???????????} ???????????byte[] buffer = Convert.FromBase64String(eStr); ???????????string sourthUrl = Encoding.Default.GetString(buffer); ???????????sourthUrl = HttpUtility.UrlDecode(sourthUrl); ???????????return sourthUrl; ???????} ???????#endregion ?????????#region 检查一个字符串是否是Base64字符串 ???????/// <summary> ???????/// 检查一个字符串是否是Base64字符串 ???????/// </summary> ???????/// <param name="eStr"></param> ???????/// <returns></returns> ???????public static bool IsBase64(string eStr) ???????{ ???????????if ((eStr.Length % 4) != 0) ???????????{ ???????????????return false; ???????????} ???????????if (!Regex.IsMatch(eStr, "^[A-Z0-9/+=]*$", RegexOptions.IgnoreCase)) ???????????{ ???????????????return false; ???????????} ???????????return true; ???????} ???????#endregion
字符串过滤:
#region 检测是否有Sql危险字符 ???????/// <summary> ???????/// 检测是否有Sql危险字符 ???????/// </summary> ???????/// <param name="str">要判断字符串</param> ???????/// <returns>判断结果</returns> ???????public static bool IsSafeSqlString(string str) ???????{ ???????????return !Regex.IsMatch(str, @"[-|;|,|\/|\(|\)|\[|\]|\}|\{|%|@|\*|!|\‘]"); ???????} ???????/// <summary> ???????/// 检查危险字符 ???????/// </summary> ???????/// <param name="Input"></param> ???????/// <returns></returns> ???????public static string Filter(string sInput) ???????{ ???????????if (sInput == null || sInput == "") ???????????????return null; ???????????string sInput1 = sInput.ToLower(); ???????????string output = sInput; ???????????string pattern = @"*|and|exec|insert|select|delete|update|count|master|truncate|declare|char(|mid(|chr(|‘"; ???????????if (Regex.Match(sInput1, Regex.Escape(pattern), RegexOptions.Compiled | RegexOptions.IgnoreCase).Success) ???????????{ ???????????????throw new Exception("字符串中含有非法字符!"); ???????????} ???????????else ???????????{ ???????????????output = output.Replace("‘", "‘‘"); ???????????} ???????????return output; ???????} ???????/// <summary> ????????/// 检查过滤设定的危险字符 ???????/// </summary> ????????/// <param name="InText">要过滤的字符串 </param> ????????/// <returns>如果参数存在不安全字符,则返回true </returns> ????????public static bool SqlFilter(string word, string InText) ???????{ ???????????if (InText == null) ???????????????return false; ???????????foreach (string i in word.Split(‘|‘)) ???????????{ ???????????????if ((InText.ToLower().IndexOf(i + " ") > -1) || (InText.ToLower().IndexOf(" " + i) > -1)) ???????????????{ ???????????????????return true; ???????????????} ???????????} ???????????return false; ???????} ???????#endregion ???????#region 过滤特殊字符 ???????/// <summary> ???????/// 过滤特殊字符 ???????/// </summary> ???????/// <param name="Input"></param> ???????/// <returns></returns> ???????public static string Htmls(string Input) ???????{ ???????????if (Input != string.Empty && Input != null) ???????????{ ???????????????string ihtml = Input.ToLower(); ???????????????ihtml = ihtml.Replace("<script", "<script"); ???????????????ihtml = ihtml.Replace("script>", "script>"); ???????????????ihtml = ihtml.Replace("<%", "<%"); ???????????????ihtml = ihtml.Replace("%>", "%>"); ???????????????ihtml = ihtml.Replace("<$", "<$"); ???????????????ihtml = ihtml.Replace("$>", "$>"); ???????????????return ihtml; ???????????} ???????????else ???????????{ ???????????????return string.Empty; ???????????} ???????} ???????#endregion
字符串与List相互转化:
???????#region 把字符串按照分隔符转换成 List ???????/// <summary> ???????/// 把字符串按照分隔符转换成 List ???????/// </summary> ???????/// <param name="str">源字符串</param> ???????/// <param name="speater">分隔符</param> ???????/// <param name="toLower">是否转换为小写</param> ???????/// <returns></returns> ???????public static List<string> GetStrArray(string str, char speater, bool toLower) ???????{ ???????????List<string> list = new List<string>(); ???????????string[] ss = str.Split(speater); ???????????foreach (string s in ss) ???????????{ ???????????????if (!string.IsNullOrEmpty(s) && s != speater.ToString()) ???????????????{ ???????????????????string strVal = s; ???????????????????if (toLower) ???????????????????{ ???????????????????????strVal = s.ToLower(); ???????????????????} ???????????????????list.Add(strVal); ???????????????} ???????????} ???????????return list; ???????} ???????#endregion ???????#region 把 List<string> 按照分隔符组装成 string ???????/// <summary> ???????/// 把 List<string> 按照分隔符组装成 string ???????/// </summary> ???????/// <param name="list"></param> ???????/// <param name="speater">分隔符</param> ???????/// <returns></returns> ???????public static string GetArrayStr(List<string> list, string speater) ???????{ ???????????StringBuilder sb = new StringBuilder(); ???????????for (int i = 0; i < list.Count; i++) ???????????{ ???????????????if (i == list.Count - 1) ???????????????{ ???????????????????sb.Append(list[i]); ???????????????} ???????????????else ???????????????{ ???????????????????sb.Append(list[i]); ???????????????????sb.Append(speater); ???????????????} ???????????} ???????????return sb.ToString(); ???????} ???????#endregion ???????#region 把 List<int> 按照分隔符组装成 string ???????/// <summary> ???????/// 把 List<int> 按照分隔符组装成 string ???????/// </summary> ???????/// <param name="list"></param> ???????/// <param name="speater">分隔符</param> ???????/// <returns></returns> ???????public static string GetArrayStr(List<int> list, string speater) ???????{ ???????????StringBuilder sb = new StringBuilder(); ???????????for (int i = 0; i < list.Count; i++) ???????????{ ???????????????if (i == list.Count - 1) ???????????????{ ???????????????????sb.Append(list[i].ToString()); ???????????????} ???????????????else ???????????????{ ???????????????????sb.Append(list[i]); ???????????????????sb.Append(","); ???????????????} ???????????} ???????????return sb.ToString(); ???????} ???????#endregion
HTML转成Text文本:
/// <summary> ???????/// HTML转行成TEXT ???????/// </summary> ???????/// <param name="strHtml"></param> ???????/// <returns></returns> ???????public static string HtmlToTxt(string strHtml) ???????{ ???????????string[] aryReg ={ ???????????@"<script[^>]*?>.*?</script>", ???????????@"<(\/\s*)?!?((\w+:)?\w+)(\w+(\s*=?\s*(([""‘])(\\[""‘tbnr]|[^\7])*?\7|\w+)|.{0})|\s)*?(\/\s*)?>", ???????????@"([\r\n])[\s]+", ???????????@"&(quot|#34);", ???????????@"&(amp|#38);", ???????????@"&(lt|#60);", ???????????@"&(gt|#62);", ???????????@"&(nbsp|#160);", ???????????@"&(iexcl|#161);", ???????????@"&(cent|#162);", ???????????@"&(pound|#163);", ???????????@"&(copy|#169);", ???????????@"&#(\d+);", ???????????@"-->", ???????????@"<!--.*\n" ???????????}; ???????????string newReg = aryReg[0]; ???????????string strOutput = strHtml; ???????????for (int i = 0; i < aryReg.Length; i++) ???????????{ ???????????????Regex regex = new Regex(aryReg[i], RegexOptions.IgnoreCase); ???????????????strOutput = regex.Replace(strOutput, string.Empty); ???????????} ???????????strOutput.Replace("<", ""); ???????????strOutput.Replace(">", ""); ???????????strOutput.Replace("\r\n", ""); ???????????return strOutput; ???????}
DataTable转List<T>:
/// <summary> ???????/// ?DataTable转换成List<T> ???????/// </summary> ???????/// <typeparam name="T"></typeparam> ???????/// <param name="dt"></param> ???????/// <param name="IsDataField"></param> ???????/// <returns></returns> ???????public static List<T> DataTableToList<T>(DataTable dt, bool IsDataField) where T : new() ???????{ ???????????List<T> ts = new List<T>(); ???????????Type type = typeof(T); ???????????string tempName = string.Empty; ???????????foreach (DataRow dr in dt.Rows) ???????????{ ???????????????T myt = new T(); ???????????????PropertyInfo[] propertys = myt.GetType().GetProperties(); ???????????????PropertyInfo[] array = propertys; ???????????????int i = 0; ???????????????DataFieldAttribute attribute = null; ???????????????PropertyAttribute proAttribute = null; ???????????????while (i < array.Length) ???????????????{ ???????????????????PropertyInfo pi = array[i]; ???????????????????if (IsDataField) ???????????????????{ ???????????????????????object[] infos = null; ???????????????????????object[] pros = null; ???????????????????????infos = pi.GetCustomAttributes(typeof(DataFieldAttribute), false); ???????????????????????pros = pi.GetCustomAttributes(typeof(PropertyAttribute), false); ???????????????????????if (infos.Length > 0) ???????????????????????{ ???????????????????????????attribute = (DataFieldAttribute)(infos[0]); ???????????????????????????if (pros.Length > 0) ???????????????????????????{ ???????????????????????????????proAttribute = (PropertyAttribute)(pros[0]); ???????????????????????????????if (proAttribute.columnKeyType != ColumnKeyType.Extend) ???????????????????????????????{ ???????????????????????????????????tempName = attribute.FieldName; ???????????????????????????????} ???????????????????????????} ???????????????????????????else ???????????????????????????????tempName = attribute.FieldName; ???????????????????????} ???????????????????} ???????????????????else ???????????????????????tempName = pi.Name; ???????????????????if (dt.Columns.Contains(tempName)) ???????????????????{ ???????????????????????if (pi.CanWrite) ???????????????????????{ ???????????????????????????object value = dr[tempName]; ???????????????????????????//if (value.GetType().Equals(typeof(DateTime))) ???????????????????????????// ???value = System.Convert.ToString(value); ???????????????????????????if (value != DBNull.Value) ???????????????????????????????pi.SetValue(myt, value, null); ???????????????????????} ???????????????????} ???????????????????i += 1; ???????????????????continue; ???????????????} ???????????????ts.Add(myt); ???????????} ???????????return ts; ???????}
DataTable 转 Object:
/// <summary> ???????/// DataTable 转 Object ???????/// </summary> ???????/// <typeparam name="T"></typeparam> ???????/// <param name="dt"></param> ???????/// <returns></returns> ???????public static T DataTableToObject<T>(DataTable dt, bool IsDataField) where T : new() ???????{ ???????????Type type = typeof(T); ???????????string tempName = string.Empty; ???????????T myt = new T(); ???????????PropertyInfo[] propertys = myt.GetType().GetProperties(); ???????????PropertyInfo[] array = propertys; ???????????int i = 0; ???????????DataFieldAttribute attribute = null; ???????????PropertyAttribute proAttribute = null; ???????????while (i < array.Length) ???????????{ ???????????????PropertyInfo pi = array[i]; ???????????????if (IsDataField) ???????????????{ ???????????????????object[] infos = null; ???????????????????object[] pros = null; ???????????????????infos = pi.GetCustomAttributes(typeof(DataFieldAttribute), false); ???????????????????pros = pi.GetCustomAttributes(typeof(PropertyAttribute), false); ???????????????????if (infos.Length > 0) ???????????????????{ ???????????????????????attribute = (DataFieldAttribute)(infos[0]); ???????????????????????if (pros.Length>0) ???????????????????????{ ???????????????????????????proAttribute = (PropertyAttribute)(pros[0]); ???????????????????????????if (proAttribute.columnKeyType != ColumnKeyType.Extend) ???????????????????????????{ ???????????????????????????????tempName = attribute.FieldName; ???????????????????????????} ???????????????????????}else ???????????????????????????tempName = attribute.FieldName; ???????????????????} ???????????????} ???????????????else ???????????????????tempName = pi.Name; ???????????????if (dt.Columns.Contains(tempName)) ???????????????{ ???????????????????if (pi.CanWrite) ???????????????????{ ???????????????????????object value = dt.Rows[0][tempName]; ???????????????????????//if (value.GetType().Equals(typeof(DateTime))) ???????????????????????// ???value = Convert.ToString(value); ???????????????????????if (value != DBNull.Value) ???????????????????????????pi.SetValue(myt, value, null); ???????????????????} ???????????????} ???????????????i += 1; ???????????????continue; ???????????} ???????????return myt; ???????}
CacheHelper:
/// <summary> ???????/// 获取数据缓存 ???????/// </summary> ???????/// <param name="CacheKey">键</param> ???????public static object GetCache(string CacheKey) ???????{ ???????????System.Web.Caching.Cache objCache = HttpRuntime.Cache; ???????????return objCache[CacheKey]; ???????} ???????/// <summary> ???????/// 设置数据缓存 ???????/// </summary> ???????public static void SetCache(string CacheKey, object objObject) ???????{ ???????????System.Web.Caching.Cache objCache = HttpRuntime.Cache; ???????????objCache.Insert(CacheKey, objObject); ???????} ???????/// <summary> ???????/// 设置数据缓存 ???????/// </summary> ???????public static void SetCache(string CacheKey, object objObject, TimeSpan Timeout) ???????{ ???????????System.Web.Caching.Cache objCache = HttpRuntime.Cache; ???????????objCache.Insert(CacheKey, objObject, null, DateTime.MaxValue, Timeout, System.Web.Caching.CacheItemPriority.NotRemovable, null); ???????} ???????/// <summary> ???????/// 移除指定数据缓存 ???????/// </summary> ???????public static void RemoveAllCache(string CacheKey) ???????{ ???????????System.Web.Caching.Cache _cache = HttpRuntime.Cache; ???????????_cache.Remove(CacheKey); ???????} ???????/// <summary> ???????/// 移除全部缓存 ???????/// </summary> ???????public static void RemoveAllCache() ???????{ ???????????System.Web.Caching.Cache _cache = HttpRuntime.Cache; ???????????IDictionaryEnumerator CacheEnum = _cache.GetEnumerator(); ???????????while (CacheEnum.MoveNext()) ???????????{ ???????????????_cache.Remove(CacheEnum.Key.ToString()); ???????????} ???????}
asp.net——公共帮助类
原文地址:https://www.cnblogs.com/witeem/p/5594615.html