推荐一个.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

相关文章
|
2月前
|
开发框架 安全 .NET
C# .NET面试系列三:集合、异常、泛型、LINQ、委托、EF!
<h2>集合、异常、泛型、LINQ、委托、EF! #### 1. IList 接口与 List 的区别是什么? IList 接口和 List 类是C#中集合的两个相关但不同的概念。下面是它们的主要区别: <b>IList 接口</b> IList 接口是C#中定义的一个泛型接口,位于 System.Collections 命名空间。它派生自 ICollection 接口,定义了一个可以通过索引访问的有序集合。 ```c# IList 接口包含一系列索引化的属性和方法,允许按索引访问、插入、移除元素等。 由于是接口,它只定义了成员的契约,而不提供具体的实现。类似于 IEnumera
159 2
.NET中将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),并使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA
.NET中将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),并使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA
235 0
|
测试技术
.net持续集成测试篇之Nunit文件断言、字符串断言及集合断言
.net持续集成测试篇之Nunit文件断言、字符串断言及集合断言使用前面讲过的方法基本上能够完成工作中的大部分任务了,然而有些功能实现起来还是比较麻烦的,比如说字符串相等性比较不区分大小写,字符串是否匹配某一正则规则,集合中的每一个(某一个)元素是否符合特定规则等,Nunit提供了一些特定的方法用来实现一些用普通断言比较难以实现的扩展类型和方法.
778 0
一起谈.NET技术,.NET 3.x新特性之自动属性及集合初始化
  今天公司弄了个VS2008 beta 2中文版,虽然很大一部分是为了JS的智能提示外,也应该好好的温习一下.NET的一些新特性,由于以前写过一些文章,但是都没有系统的学过,都只是尝一下新鲜感。不知道从那开始,所以今天就来看看自动话属性,以及对象初始化和集合初始化的一些新特性。
639 0
|
XML 数据格式 索引
一起谈.NET技术,话说索引器、foreach和集合初始化器
  索引器   在使用集合类时我们经常用到索引器,例如List集合,我们使用int数字作为索引器参数,而字典集合我们可以使用任何对象作为索引器参数。   在我们自己定义的类中使用索引器的情况也许不多,现在举例详细说明一下。
738 0
|
存储 C# 索引
一起谈.NET技术,在C#中选择正确的集合进行编码
  要选择正确的集合,我们首先要了解一些数据结构的知识。所谓数据结构,就是相互之间存在一种或多种特定关系的数据元素的集合。结合下图,我们看一下对集合的分类。   集合分类   在上图中,可以看到,集合总体上分为线性集合和非线性集合。
1034 0
|
存储 C# 索引
在C#“.NET技术”中选择正确的集合进行编码
  要选择正确的集合,我们首先要了解一些数据结构的知识。所谓数据结构,就是相互之间存在一种或多种特定关系的数据元素的集合。上海网站建设结合下图,我们看一下对集合的分类。   集合分类   在上图中,可以看到,集合总体上分为线性集合和非线性集合。
797 0
|
存储 C# 索引
在C#中选择“.NET研究”正确的集合进行编码
  要选择正确的集合,我们首先要上海徐汇企业网站设计与制作了解一些数据结构的知识。所谓数据结构,就是相互之间存在一种或多种特定关系的数据元素的集合。结合下图,我们看一下对集合的分类。 上海闵行企业网站设计与制作上海徐汇企业网站制作   集合分类   在上图中,可以看到,集合总体上分为线性集合和非线性集合。
920 0