推荐一个.Net常用代码集合,助你高效完成业务

上次给大家推荐了《推荐一个不到2MB的C#开发工具箱,集成了上千个常用操作类》,受到大家的一致欢迎,这次再给大家推荐一个常用代码集合,这个库虽然与之前那个只有小部分重复,功能齐全,大家可以整合一起使用。

项目简介

这个代码集合,都是一些常用的功能性代码,每个类都是独立、没有相互依赖,可以单独使用。大家可以根据项目,提取相应的类,避免重复造轮子。

功能列表

===========

Chart图形:柱状图、饼图、条形图

加密解密:DES、MDG、RSA、Hash

上传下载:调用API文件上传、下载、保存

视频转换:asf, avi, mpg, 3gp, mov相互转换

阿里云:阿里直播、OSS相关API封装。

FTP:链接、文件上传、文件下载、文件夹获取、文件获取、修改文件名称、获取文件信息、切换目录

条形码:39、13

图片:收略图、图片/文字水印、反色、浮雕、拉伸、滤镜、翻转、压缩、黑白、上传下载等操作

网络:Http请求、IP获取、邮件发送、Socket操作、客户度信息获取

Cookie&Session:操作辅助

Excel:文件读取、编辑、格式转换、查询

JSON:List、对象、DataSet与Json相互转换。

XML:文件读取、保存、节点增、删、改,节点属性管理。

二维码:二维码图片生成、图片大小设置

汉字与拼音:相互转换

缓存:系统缓存设置、修改、删除、查询

计划任务:Quartz.NET

网络安全:脚本攻击、授权认证

文件:读写文件、删除、追加文件、后缀名、目录、文件属性等

验证码:数字、字母与数字、字母随机

其他:字符串类型转换、配置文件操作、日志、时间戳、随机数、线程、正则表达式

技术架构

开发工具:VisualStudio

SDK:.Net Framework4.5

项目结构

图片

部分功能代码

**阿里Oss上传文件
**

/// <summary>
        /// 上传文件
        /// </summary>
        /// <param name="fileName">文件名:/images/demo.jpg</param>
        /// <param name="fileStream"></param>
        public void Upload(string fileName, Stream fileStream)
        {

            OssClient ossClient = new OssClient(EndPoint, AccessKeyID, AccessKeySecret);
            ObjectMetadata metadata = new ObjectMetadata();
            //根据文件名设置ContentType
            metadata.ContentType = GetContentType(fileName);
            string key = "MerLogo/" + fileName;
            fileStream.Seek(0, SeekOrigin.Begin);
            PutObjectResult result = ossClient.PutObject(BucketName, key, fileStream, metadata);
        }

二维码生成

/// <summary>
        /// 生成二维码图片
        /// </summary>
        /// <param name="str">字符串</param>
        /// <param name="size">图片大小</param>
        /// <param name="path">图片位置 
        /// 例如  /abc/abc/
        /// </param>
        /// <returns>返回生成的二维码图片路径</returns>
        public string Create(string str, int size, string path)
        {
            try
            {
                QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
                //设置编码模式
                qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
                //设置编码测量度
                qrCodeEncoder.QRCodeScale = size;
                //设置编码版本
                qrCodeEncoder.QRCodeVersion = 8;
                //设置编码错误纠正
                qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;
                System.Drawing.Image image = qrCodeEncoder.Encode(str);

                string filename = "~" + path + Guid.NewGuid() + ".jpg";
                image.Save(HttpContext.Current.Request.MapPath(filename));

                return filename.Replace("~", "");
            }
            catch (Exception)
            {
                return "";
            }

        }

RSA的加密函数

//############################################################################## 
    //RSA 方式加密 
    //说明KEY必须是XML的行式,返回的是字符串 
    //在有一点需要说明!!该加密方式有 长度 限制的!!
    //############################################################################## 

    //RSA的加密函数  string
    public string RSAEncrypt(string xmlPublicKey,string m_strEncryptString ) 
    { 
      
      byte[] PlainTextBArray; 
      byte[] CypherTextBArray; 
      string Result; 
      RSACryptoServiceProvider rsa=new RSACryptoServiceProvider(); 
      rsa.FromXmlString(xmlPublicKey); 
      PlainTextBArray = (new UnicodeEncoding()).GetBytes(m_strEncryptString); 
      CypherTextBArray = rsa.Encrypt(PlainTextBArray, false); 
      Result=Convert.ToBase64String(CypherTextBArray); 
      return Result; 
      
    }

FTP上传文件

/// <summary>  
        /// 上传  
        /// </summary>   
        public void Upload(string filename)
        {
            FileInfo fileInf = new FileInfo(filename);
            FtpWebRequest reqFTP;
            reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpURI + fileInf.Name));
            reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
            reqFTP.Method = WebRequestMethods.Ftp.UploadFile;
            reqFTP.KeepAlive = false;
            reqFTP.UseBinary = true;
            reqFTP.ContentLength = fileInf.Length;
            int buffLength = 2048;
            byte[] buff = new byte[buffLength];
            int contentLen;
            FileStream fs = fileInf.OpenRead();
            try
            {
                Stream strm = reqFTP.GetRequestStream();
                contentLen = fs.Read(buff, 0, buffLength);
                while (contentLen != 0)
                {
                    strm.Write(buff, 0, contentLen);
                    contentLen = fs.Read(buff, 0, buffLength);
                }
                strm.Close();
                fs.Close();
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }

柱状图

 /// <summary>
        /// 柱形图
        /// </summary>
        /// <returns></returns>
        public string CreateColumn()
        {
            Microsoft.Office.Interop.Owc11.ChartSpace objCSpace = new Microsoft.Office.Interop.Owc11.ChartSpaceClass();//创建ChartSpace对象来放置图表      
            Microsoft.Office.Interop.Owc11.ChChart objChart = objCSpace.Charts.Add(0);//在ChartSpace对象中添加图表,Add方法返回chart对象

            //指定图表的类型。类型由OWC.ChartChartTypeEnum枚举值得到//Microsoft.Office.Interop.OWC.ChartChartTypeEnum
            objChart.Type = Microsoft.Office.Interop.Owc11.ChartChartTypeEnum.chChartTypeColumnClustered;

            //指定图表是否需要图例
            objChart.HasLegend = true;

            //标题
            objChart.HasTitle = true;
            objChart.Title.Caption = _title;
            //      objChart.Title.Font.Bold=true;
            //      objChart.Title.Font.Color="blue";


            #region 样式设置

            //      //旋转
            //      objChart.Rotation  = 360;//表示指定三维图表的旋转角度
            //      objChart.Inclination = 10;//表示指定三维图表的视图斜率。有效范围为 -90 到 90

            //背景颜色
            //      objChart.PlotArea.Interior.Color = "red";

            //底座颜色
            //      objChart.PlotArea.Floor.Interior.Color = "green";
            // 
            //      objChart.Overlap = 50;//单个类别中标志之间的重叠量

            #endregion

            //x,y轴的图示说明
            objChart.Axes[0].HasTitle = true;
            objChart.Axes[0].Title.Caption = "X :类别";
            objChart.Axes[1].HasTitle = true;
            objChart.Axes[1].Title.Caption = "Y :数量";


            //添加一个series
            Microsoft.Office.Interop.Owc11.ChSeries ThisChSeries = objChart.SeriesCollection.Add(0);


            //给定series的名字
            ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimSeriesNames,
                Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(), SeriesName);
            //给定分类
            ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimCategories,
                Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(), strCategory);
            //给定值
            ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimValues,
                Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(), strValue);

            Microsoft.Office.Interop.Owc11.ChDataLabels dl = objChart.SeriesCollection[0].DataLabelsCollection.Add();
            dl.HasValue = true;
            //      dl.Position=Microsoft.Office.Interop.Owc11.ChartDataLabelPositionEnum.chLabelPositionOutsideEnd;


            string filename = DateTime.Now.ToString("yyyyMMddHHmmssff") + ".gif";
            string strAbsolutePath = _phaysicalimagepath + "\\" + filename;
            objCSpace.ExportPicture(strAbsolutePath, "GIF", _picwidth, _pichight);//输出成GIF文件.

            return filename;

        }

源码地址:

Gitee地址:https://gitee.com/kuiyu/dotnetcodes

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程乐趣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值