http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 15859|回复: 3

[功能帮助类] 最新的Functions 类

[复制链接]
发表于 2012-9-25 13:21:39 | 显示全部楼层 |阅读模式
导读部分
-------------------------------------------------------------------------------------------------------------
C#基类|C#自定义类|C#帮助类--系列导航文章
http://www.sufeinet.com/thread-655-1-1.html

[C#] 纯文本查看 复制代码
代码 
using System;
using System.Collections.Generic;
using System.Text;
using System.Security.Cryptography;
using System.IO;

namespace BaseFunction
{
    /// <summary>
    /// 常用函数。
    /// 作者:苏飞
    /// 时间:20090322
    /// </summary>
    public sealed class Functions
    {
        static Int32 index;

        #region 前面补零
        /// <summary>
        /// 不住位数的数字,前面补零
        /// </summary>
        /// <param name="value">要补足的数字</param>
        /// <param name="size">不齐的位数</param>
        /// <returns></returns>
        public static string Zerofill(string value, int size)
        {
            string tmp = "";
            for (int i = 0; i < size - value.Length; i++)
            {
                tmp += "0";
            }

            return tmp + value;
        }
        #endregion

        #region 过滤掉 html代码
        /// <summary>
        /// 过滤html标签
        /// </summary>
        /// <param name="strHtml">html的内容</param>
        /// <returns></returns>
        public static string StripHTML(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[] aryRep = {
                                   "",
                                   "",
                                   "",
                                   "\"",
                                   "&",
                                   "<",
                                   ">",
                                   " ",
                                   "\xa1",//chr(161),
                                   "\xa2",//chr(162),
                                   "\xa3",//chr(163),
                                   "\xa9",//chr(169),
                                   "",
                                   "\r\n",
                                   ""
                               };

            string newReg = aryReg[0];
            string strOutput = strHtml;
            for (int i = 0; i < aryReg.Length; i++)
            {
                System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(aryReg, System.Text.RegularExpressions.RegexOptions.IgnoreCase);
[i]                strOutput = regex.Replace(strOutput, aryRep);
            }
            //strOutput.Replace("<", "");
            //strOutput.Replace(">", "");
            strOutput = strOutput.Replace("\r\n", "");
            return strOutput;
        }
        #endregion

        #region 全角半角转换
        /// <summary>
        /// 转全角的函数(SBC case)
        /// </summary>
        /// <param name="input">任意字符串</param>
        /// <returns>全角字符串</returns>
        ///<remarks>
        ///全角空格为12288,半角空格为32
        ///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248
        ///</remarks>
        public static string ToSBC(string input)
        {
            //半角转全角:
            char[] c = input.ToCharArray();
            for (int i = 0; i < c.Length; i++)
            {
                if (c == 32)
                {
                    c = (char)12288;
                    continue;
                }
                if (c < 127)
                    c = (char)(c + 65248);
            }
            return new string(c);
        }


        /// <summary> 转半角的函数(DBC case) </summary>
        /// <param name="input">任意字符串</param>
        /// <returns>半角字符串</returns>
        ///<remarks>
        ///全角空格为12288,半角空格为32
        ///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248
        ///</remarks>
        public static string ToDBC(string input)
        {
            char[] c = input.ToCharArray();
            for (int i = 0; i < c.Length; i++)
            {
                if (c == 12288)
                {
                    c = (char)32;
                    continue;
                }
                if (c > 65280 && c < 65375)
                    c = (char)(c - 65248);
            }
            return new string(c);
        }
        #endregion


        #region 传入URL返回网页的html代码

        /// <summary>
        /// 传入URL返回网页的html代码
        /// </summary>
        /// <param name="Url">URL</param>
        /// <returns></returns>
        public static string GetUrltoHtml(string Url)
        {
            try
            {
                System.Net.WebRequest wReq = System.Net.WebRequest.Create(Url);
                // Get the response instance.
                System.Net.WebResponse wResp = wReq.GetResponse();
                // Read an HTTP-specific property
                //if (wResp.GetType() ==HttpWebResponse)
                //{
                //DateTime updated  =((System.Net.HttpWebResponse)wResp).LastModified;
                //}
                // Get the response stream.
                System.IO.Stream respStream = wResp.GetResponseStream();
                // Dim reader As StreamReader = New StreamReader(respStream)
                System.IO.StreamReader reader = new System.IO.StreamReader(respStream, System.Text.Encoding.GetEncoding("gb2312"));
                return reader.ReadToEnd();

            }
            catch (System.Exception ex)
            {
                //errorMsg = ex.Message;
            }
            return "";
        }

        #endregion

        #region MD5加密字符串。截取字符串

        /// <summary>
        /// 传入明文,返回用MD%加密后的字符串
        /// </summary>
        /// <param name="str">要加密的字符串</param>
        /// <returns>用MD5加密后的字符串</returns>
        public static string ToMD5(string str)
        {
            return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str, "md5");
        }
        /// <summary>
        /// 截取字符串。
        /// </summary>
        /// <param name="str">要接取得字符串</param>
        /// <param name="number">保留的字节数。按半角计算</param>
        /// <returns>指定长度的字符串</returns>
        public static string StringCal(string str, int number)
        {
            Byte[] tempStr = System.Text.Encoding.Default.GetBytes(str);
            if (tempStr.Length > number)
            {
                return System.Text.Encoding.Default.GetString(tempStr, 0, number - 2) + "..";
            }
            else
                return str;
        }


        #endregion

        #region 删除文件

        /// <summary>
        /// 删除文件
        /// </summary>
        /// <param name="FilePath">文件的物理地址</param>
        /// <returns></returns>
        public static bool DeleteFile(string FilePath)
        {
            try
            {
                System.IO.File.Delete(FilePath);
                return true;
            }
            catch
            {
                //errorMsg = "删除不成功!";
                return false;
            }
        }
        #endregion

        #region 验证——数字部分
        /// <summary>
        /// 判断是否是实数,是返回true 否返回false。可以传入null。
        /// </summary>
        /// <param name="strVal">要验证的字符串</param>
        /// <returns></returns>
        public static bool IsNumeric(string strVal)
        {
            //System.Text.RegularExpressions.Regex reg1 = new System.Text.RegularExpressions.Regex("-?([0]|([1-9]+\\d{0,}?))(.[\\d]+)?$");  
            //return reg1.IsMatch(strVal);  
            //string tmp="";
            //判断是否为null 和空字符串
            if (strVal == null || strVal.Length == 0)
                return false;
            //判断是否只有.、-、 -.
            if (strVal == "." || strVal == "-" || strVal == "-.")
                return false;

            //记录是否有多个小数点
            bool isPoint = false;            //是否有小数点

            //去掉第一个负号,中间是不可以有负号的
            strVal = strVal.TrimStart('-');

            foreach (char c in strVal)
            {
                if (c == '.')
                    if (isPoint)
                        return false;
                    else
                        isPoint = true;

                if ((c < '0' || c > '9') && c != '.')
                    return false;
            }
            return true;
        }

        /// <summary>
        /// 判断是否为整数。是返回true 否返回false。可以传入null。
        /// </summary>
        /// <param name="strVal">要判断的字符</param>
        /// <returns></returns>
        public static bool IsInt(string strVal)
        {
            if (strVal == null || strVal.Length == 0)
                return false;
            //判断是否只有.、-、 -.
            if (strVal == "." || strVal == "-" || strVal == "-.")
                return false;

            //去掉第一个负号,中间是不可以有负号的
            if (strVal.Substring(0, 1) == "-")
                strVal = strVal.Remove(0, 1);

            foreach (char c in strVal)
            {
                if (c < '0' || c > '9')
                    return false;
            }
            return true;
        }

        /// <summary>
        /// 判断是否为ID串。是返回true 否返回false。可以传入null。
        /// </summary>
        /// <example >
        /// ,1,2,3,4,5,6,7,
        /// </example>
        /// <param name="strVal">要判断的字符串</param>
        /// <returns></returns>
        public static bool IsIDString(string strVal)
        {
            bool flag = false;
            if (strVal == null)
                return false;
            if (strVal == "")
                return true;
            //判断是否只有 ,
            if (strVal == ",")
                return false;

            //判断第一位是否是,号
            if (strVal.Substring(0, 1) == ",")
                return false;

            //判断最后一位是否是,号
            if (strVal.Substring(strVal.Length - 1, 1) == ",")
                return false;

            foreach (char c in strVal)
            {
                if (c == ',')
                    if (flag) return false; else flag = true;

                else if ((c >= '0' && c <= '9'))
                    flag = false;
                else
                    return false;
            }
            return true;
        }

        /// <summary>
        /// 转换为整数。不是整数的话,返回“-1”
        /// </summary>
        /// <param name="str">要转换的字符</param>
        /// <returns></returns>
        public static int StringToInt(string str)
        {
            //判断是否是数字,是数字返回数字,不是数字返回-1
            if (IsInt(str))
                return Int32.Parse(str);
            else
                return -1;
        }

        /// <summary>
        /// 转换为实数。不是实数的话,返回“-1”
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        public static float StrTofloat(string str)
        {
            //判断是否是数字,是数字返回数字,不是数字返回-1
            if (IsNumeric(str))
                return float.Parse(str);
            else
                return -1;
        }

        /// <summary>
        /// 验证是否是GUID
        /// 6454bc76-5f98-de11-aa4c-00219bf56456
        /// </summary>
        /// <returns></returns>
        public static bool IsGUID(string strVal)
        {
            if (strVal == null)
                return false;

            if (strVal == "")
                return false;

            strVal = strVal.TrimStart('{');
            strVal = strVal.TrimEnd('}');

            //长度必须是36位
            if (strVal.Length != 36)
                return false;

            foreach (char c in strVal)
            {
                if (c == '-')
                    continue;
                else if (c >= 'a' && c <= 'f')
                    continue;
                else if (c >= 'A' && c <= 'F')
                    continue;
                else if ((c >= '0' && c <= '9'))
                    continue;
                else
                    return false;
            }
            return true;
        }
        #endregion


        #region 验证——处理字符串部分

        /// <summary>
        /// 去掉两边的空格,把“'”替换为“'”SBC
        /// </summary>
        /// <param name="str">要处理的字符串</param>
        /// <returns></returns>
        public static string StringReplaceToSBC(string str)
        {
            //过滤不安全的字符
            string tstr;
            tstr = str.Trim();
            return tstr.Replace("'", "'");
        }

        /// <summary>
        /// 去掉两边的空格,把“'”替换为“''”DBC
        /// </summary>
        /// <param name="str">要验证的字符串</param>
        /// <returns></returns>
        public static string StringReplaceToDBC(string str)
        {
            //过滤不安全的字符
            string tstr;
            tstr = str.Trim();
            return tstr.Replace("'", "''");
        }
        /// <summary>
        /// 去掉两边的空格,把“'”替换为“”
        /// </summary>
        /// <param name="str">要验证的字符串</param>
        /// <returns></returns>
        public static string StringReplaceToEmpty(string str)
        {
            //过滤不安全的字符
            string tstr;
            tstr = str.Trim();
            return tstr.Replace("'", "");
        }

        #endregion


        #region 验证——时间部分

        /// <summary>
        /// 转换时间。不正确的话,返回当前时间
        /// </summary>
        /// <param name="isdt">要转换的字符串</param>
        /// <returns></returns>
        public static DateTime StringToDateTime(string isdt)
        {
            //判断时间是否正确
            DateTime mydt;
            try
            {
                mydt = Convert.ToDateTime(isdt);
            }
            catch
            {
                //时间格式不正确
                return mydt = DateTime.Now;
            }

            return mydt;
        }

        /// <summary>
        /// 判断是否是正确的时间格式。正确返回“true”,不正确返回提示信息。
        /// 
        /// </summary>
        /// <param name="isdt">要判断的字符串</param>
        /// <returns></returns>
        public static bool IsDateTime(string isdt)
        {
            //判断时间是否正确
            DateTime mydt;
            try
            {
                mydt = Convert.ToDateTime(isdt);
                return true;
            }
            catch
            {
                //时间格式不正确
                //errorMsg = "您填的时间格式不正确,请按照2004-1-1的形式填写。";
                return false;
            }


        }
        #endregion


        #region 生成查询条件
        /// <summary>
        /// 组成查询字符串
        /// </summary>
        /// <param name="columnName">字段名</param>
        /// <param name="keyword">查询条件</param>
        /// <param name="hasContent">是否已经有查询条件了,true:加and;false:不加and</param>
        /// <param name="colType">1:数字;2:字符串,精确查询;3:字符串,模糊查询,包括时间查询</param>
        /// <returns></returns>
        public static string GetSearchString(string columnName, string keyword, ref bool hasContent, int colType)
        {
            if (keyword == "" || keyword == "0")
            {
                return "";
            }
            else
            {
                System.Text.StringBuilder tmp = new System.Text.StringBuilder();
                switch (colType)
                {
                    case 1:
                        //数字
                        tmp.Append(columnName);
                        tmp.Append(" = ");
                        tmp.Append(keyword);
                        break;
                    case 2:
                        //字符串,精确查询
                        tmp.Append(columnName);
                        tmp.Append(" = '");
                        tmp.Append(keyword);
                        tmp.Append("' ");
                        break;
                    case 3:
                        //字符串,模糊查询,包括时间查询
                        tmp.Append(columnName);
                        tmp.Append(" like '% ");
                        tmp.Append(keyword);
                        tmp.Append("%' ");

                        break;
                }
                if (hasContent)
                    tmp.Insert(0, " and ");

                hasContent = true;
                return tmp.ToString();

            }

        }
        #endregion

        #region ========解密========


        /// <summary>
        /// 解密
        /// </summary>
        /// <param name="Text"></param>
        /// <returns></returns>
        public static string Decrypt(string Text)
        {
            return Decrypt(Text, "litianping");
        }

        /// <summary> 
        /// 解密数据 
        /// </summary> 
        /// <param name="Text"></param> 
        /// <param name="sKey"></param> 
        /// <returns></returns> 
        public static string Decrypt(string Text, string sKey)
        {
            DESCryptoServiceProvider des = new DESCryptoServiceProvider();
            int len;
            len = Text.Length / 2;
            byte[] inputByteArray = new byte[len];
            int x, i;
            for (x = 0; x < len; x++)
            {
                i = Convert.ToInt32(Text.Substring(x * 2, 2), 16);
                inputByteArray[x] = (byte)i;
            }
            des.Key = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8));
            des.IV = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8));
            System.IO.MemoryStream ms = new System.IO.MemoryStream();
            CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);
            cs.Write(inputByteArray, 0, inputByteArray.Length);
            cs.FlushFinalBlock();
            return Encoding.Default.GetString(ms.ToArray());
        }

        #endregion
    }

    #region 加密、解密字符串
    /// <summary>
    /// 加密字符串。可以解密
    /// </summary>
    public class Encryptor
    {
        #region 加密,固定密钥
        /// <summary>
        /// 加密
        /// </summary>
        /// <param name="sourceData">原文</param>
        /// <returns></returns>
        public static string Encrypt(string sourceData)
        {
            //set key and initialization vector values
            //Byte[] key = new byte[] {0x21, 2, 0x88, 4, 5, 0x56, 7, 0x99};
            //Byte[] iv = new byte[] {0x21, 2, 0x88, 4, 5, 0x56, 7, 0x99};
            Byte[] key = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 };
            Byte[] iv = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 };
            try
            {
                //convert data to byte array
                Byte[] sourceDataBytes = System.Text.ASCIIEncoding.UTF8.GetBytes(sourceData);
                //get target memory stream
                MemoryStream tempStream = new MemoryStream();
                //get encryptor and encryption stream
                DESCryptoServiceProvider encryptor = new DESCryptoServiceProvider();
                CryptoStream encryptionStream = new CryptoStream(tempStream, encryptor.CreateEncryptor(key, iv), CryptoStreamMode.Write);

                //encrypt data
                encryptionStream.Write(sourceDataBytes, 0, sourceDataBytes.Length);
                encryptionStream.FlushFinalBlock();

                //put data into byte array
                Byte[] encryptedDataBytes = tempStream.GetBuffer();
                //convert encrypted data into string
                return System.Convert.ToBase64String(encryptedDataBytes, 0, (int)tempStream.Length);
            }
            catch (Exception ex)
            {
                throw (ex);
            }
        }
        #endregion

        #region 加密,可以设置密钥
        /// <summary>
        /// 可以设置密钥的加密方式
        /// </summary>
        /// <param name="sourceData">原文</param>
        /// <param name="key">密钥,8位数字,字符串方式</param>
        /// <returns></returns>
        public static string Encrypt(string sourceData, string key)
        {
            //set key and initialization vector values
            //Byte[] key = new byte[] {0x21, 2, 0x88, 4, 5, 0x56, 7, 0x99};
            //Byte[] iv = new byte[] {0x21, 2, 0x88, 4, 5, 0x56, 7, 0x99};

            #region 检查密钥是否符合规定
            if (key.Length > 8)
            {
                key = key.Substring(0, 8);
            }
            #endregion

            char[] tmp = key.ToCharArray();
            Byte[] keys = new byte[8];
            //Byte[] keys = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 };
            Byte[] iv = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 };

            //设置密钥
            for (int i = 0; i < 8; i++)
            {
                if (tmp.Length > i)
                {
                    keys = (byte)tmp;
                }
                else
                {
                    keys = (byte)i;
                }
            }

            try
            {
                //convert data to byte array
                Byte[] sourceDataBytes = System.Text.ASCIIEncoding.UTF8.GetBytes(sourceData);
                //get target memory stream
                MemoryStream tempStream = new MemoryStream();
                //get encryptor and encryption stream
                DESCryptoServiceProvider encryptor = new DESCryptoServiceProvider();
                CryptoStream encryptionStream = new CryptoStream(tempStream, encryptor.CreateEncryptor(keys, iv), CryptoStreamMode.Write);

                //encrypt data
                encryptionStream.Write(sourceDataBytes, 0, sourceDataBytes.Length);
                encryptionStream.FlushFinalBlock();

                //put data into byte array
                Byte[] encryptedDataBytes = tempStream.GetBuffer();
                //convert encrypted data into string
                return System.Convert.ToBase64String(encryptedDataBytes, 0, (int)tempStream.Length);
            }
            catch (Exception ex)
            {
                throw (ex);
            }
        }
        #endregion

        #region 解密,固定密钥
        /// <summary>
        /// 解密
        /// </summary>
        /// <param name="sourceData">密文</param>
        /// <returns></returns>
        public static string Decrypt(string sourceData)
        {
            //set key and initialization vector values
            //Byte[] key = new byte[] {0x21, 2, 0x88, 4, 5, 0x56, 7, 0x99};
            //Byte[] iv = new byte[] {0x21, 2, 0x88, 4, 5, 0x56, 7, 0x99};
            Byte[] keys = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 };
            Byte[] iv = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 };
            try
            {
                //convert data to byte array
                Byte[] encryptedDataBytes = System.Convert.FromBase64String(sourceData);
                //get source memory stream and fill it 
                MemoryStream tempStream = new MemoryStream(encryptedDataBytes, 0, encryptedDataBytes.Length);
                //get decryptor and decryption stream 
                DESCryptoServiceProvider decryptor = new DESCryptoServiceProvider();
                CryptoStream decryptionStream = new CryptoStream(tempStream, decryptor.CreateDecryptor(keys, iv), CryptoStreamMode.Read);

                //decrypt data 
                StreamReader allDataReader = new StreamReader(decryptionStream);

                return allDataReader.ReadToEnd();
            }
            catch (Exception ex)
            {
                throw (ex);
            }
        }
        #endregion

        #region 解密,固定密钥
        /// <summary>
        /// 解密
        /// </summary>
        /// <param name="sourceData">密文</param>
        /// <param name="key">密钥,8位数字,字符串方式</param>
        /// <returns></returns>
        public static string Decrypt(string sourceData, string key)
        {
            //set key and initialization vector values
            //Byte[] key = new byte[] {0x21, 2, 0x88, 4, 5, 0x56, 7, 0x99};
            //Byte[] iv = new byte[] {0x21, 2, 0x88, 4, 5, 0x56, 7, 0x99};

            #region 检查密钥是否符合规定
            if (key.Length > 8)
            {
                key = key.Substring(0, 8);
            }
            #endregion

            char[] tmp = key.ToCharArray();
            Byte[] keys = new byte[8];
            //Byte[] keys = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 };
            Byte[] iv = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 };

            //设置密钥
            for (int i = 0; i < 8; i++)
            {
                if (tmp.Length > i)
                {
                    keys = (byte)tmp;
                }
                else
                {
                    keys = (byte)i;
                }
            }


            try
            {
                //convert data to byte array
                Byte[] encryptedDataBytes = System.Convert.FromBase64String(sourceData);
                //get source memory stream and fill it 
                MemoryStream tempStream = new MemoryStream(encryptedDataBytes, 0, encryptedDataBytes.Length);
                //get decryptor and decryption stream 
                DESCryptoServiceProvider decryptor = new DESCryptoServiceProvider();
                CryptoStream decryptionStream = new CryptoStream(tempStream, decryptor.CreateDecryptor(keys, iv), CryptoStreamMode.Read);

                //decrypt data 
                StreamReader allDataReader = new StreamReader(decryptionStream);

                return allDataReader.ReadToEnd();
            }
            catch (Exception ex)
            {
                throw (ex);
            }
        }
        #endregion

        /// <summary>
        /// 对需要加密的字串进行MD5加密(针对密码加密)
        /// </summary>
        /// <param name="ConvertString">需要加密的字串</param>
        /// <returns>加密后的字串</returns>
        /// <remarks>
        /// Modifier: Xiaoliang Ge
        /// Modified Date: 2009-12-26
        /// </remarks>
        public static string MD5EncryptStr(string ConvertString)
        {
            MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
            string t2 = BitConverter.ToString(md5.ComputeHash(UTF8Encoding.Default.GetBytes(ConvertString)),
, 8);
            return t2;
        }
    }

    #endregion

}



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2015-1-30 18:56:28 | 显示全部楼层
为毛不能下载
发表于 2016-10-28 16:28:34 | 显示全部楼层
你好,为什么DotNet.Utilities2016-06-28中没有这个类了
发表于 2018-11-5 11:00:26 | 显示全部楼层
不知道是什么法, 很多都不能用 直接报错
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-4-25 13:42

© 2014-2021

快速回复 返回顶部 返回列表