随笔分类 - C#
IEnumerable接口的Aggregate方法
摘要:以前小猪为了累加一个集合中的类容通常会写出类似这样的C#代码:string result ="":foreach (var item in items){ result+=item.centent;}大概意思就是遍历集合中的每一项来累加其中的一个值。今天小猪才发现其实.NET的集合已经提供了该功能:那就是小猪现在讲的IEnumerable接口的Aggregate方法:该方法提供了两个重载版本版本1:Aggregate(Func):已重载。 对序列应用累加器函数。 (由 Enumerable 定义。)版本2:Aggregate(TAccumulate, Func)已重载。 对
阅读全文
Server.UrlEncode()方法 空格转换成了+而非%20
摘要:在ASP.NET MVC 的Control类里提供了该方法。该方法可以很方便的对字符串进行url编码,但小猪今天却发现其将空格编码后变成了“+”而非JavaScript采用的encodeURIComponent()编码之后的%20。也许这算一个bug也许也不算。仔细想想在我们的url中确实不会存在空格,但是文件系统的命名却是可以使用空格的(Program Files),所以必须将空格转码。那为什么在.Net下回转换成+而在js中会是%20呢?关键问题是在encode成+之后再decode却不能转换成了空格了呀。这确实是个蛋疼的问题。引用了老外的一段描述:引用:As far as I know,
阅读全文
设置正确的post数据格式
摘要:之前一直使用苏飞的HttpHelper类来访问网络,用起来一直感觉很爽。使用其工具直接生成访问代码很是方便。直到昨天下午做到需要使用wpf来post两个字段数据到服务器,服务器使用ASP.NET MVC来接收表单数据时出现了问题。首先:按照正常使用习惯来生成的代码是:HttpHelper http = new HttpHelper();HttpItem item = new HttpItem(){ URL = "http://localhost:2250/api/login",//URL 必需项 Method = "post",//URL 可选项 默认为
阅读全文
使用C#下载网络文件
摘要:下载/// /// 下载文件/// /// 下载文件地址/// 下载后另存为(全路径)private bool DownloadFile(string URL, string filename){ try { System.Net.HttpWebRequest Myrq = (System.Net.HttpWebRequest) System.Net.HttpWebRequest.Create(URL); System.Net.HttpWebResponse myrp = (System.Net.HttpWebResponse) Myrq.GetResp...
阅读全文
使用Linq快速的操作XML
摘要:开始内容之前先分享一段话有时候,当你知道要做什么的时候就做的很快,比如你要实现个功能,码字的活儿不算很难,做个检索也不会有什么难倒你的。但是,做着做着,你发现好像世界上的工作都在重复,于是你有种心要飞起来的感觉,但总觉得脚步速度太慢,你开始抱怨进度,公司也对你充满期待,于是会给你配备助手,一来二去,你成为了小领导,你不再自己编码了,而且要做什么也都告诉你的助手们了,这时,你陷入了沉思,我该干什么呢?偶然的,你发现某些事情朝着错误的方向发展,用户开始抱怨了,你跳出来,指出助手们的错误,然后事情过去了,你却停不下来,你怕这样的事情再次发生,于是你开始更深的沉思,这次你学会了思考,我要做的就是保持优
阅读全文
C# 检测网络链接
摘要:private const long INTERNET_CONNECTION_MODEM = 1;//Local system uses a modem to connect to the Internet.private const long INTERNET_CONNECTION_LAN = 2; //Local system uses a local area network to connect to the Internet.private const long INTERNET_CONNECTION_PROXY = 4;//Local system uses a proxy ser
阅读全文
强大的Resharp插件
摘要:使用VS有段时间了,一直深深的折服于其强大的功能。之前一直听说有Resharp这个工具,小猪一直也没有太在意。直到今天……下载安装:http://www.jetbrains.com/resharper/download/http://www.ttrjba.com/index.php/resharper7-1-1000-900/resharper安装后,会做几件事情,这几件事情对于除此使用者,比较麻烦,因此归纳总结一下,以资参考。(1)、会将选项——文本编辑器——C#——常规——自动列出成员 这个选择框的勾选去掉。这样当你使用某个方法的时候,便不会提示参数,是一个很郁闷的事情。可以手动勾上。(2
阅读全文
编写自己的Windows Live Writer插件
摘要:起因自从小猪使用Windows Live Writer(wlw)来写博客之后就很少打开网站的后台编辑器了,这真是个写博客的好东西啊,但是任何东西都是不完美的。索契冬奥会开幕式都会把五环弄成四环呢!对于写博一个很简单的情景:小猪需要从别的网站上面引用一段话,我希望引用的这端话有独立的标签好定义其样式,就这么个简单的需求在原生的wlw里面却束手无策了。好在现在的软件都强调对其自身的拓展,wlw也不例外。准备其实需求很简单,就是希望能有那么个按钮,这个按钮的功能是给我的文字加上一段固定的标签就可以了。参考很多的代码高亮插件之后发现这个完全是可行的,而且相比于代码高亮来说实在是再简单不过了——我不需要
阅读全文
找到的程序集清单定义与程序集引用不匹配
摘要:“/”应用程序中的服务器错误。未能加载文件或程序集“Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)说明:执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。异常详细信息:System.IO.FileLoadException: 未能加载文件或程序集“Newtonsoft.Json, Version=
阅读全文
GUID
摘要:前言全局唯一标识符,简称GUID(发音为 /ˈɡuːɪd/或/ˈɡwɪd/),是一种由算法生成的唯一标识,通常表示成32个16进制数字(0-9,A-F)组成的字符串,如:{21EC2020-3AEA-1069-A2DD-08002B30309D},它实质上是一个128位长的二进制整数。GUID一词有时也专指微软对UUID标准的实现。(摘自:维基百科)GUID的主要目的是产生完全唯一的数字。在理想情况下,任何计算机和计算机集群都不会生成两个相同的GUID。GUID的总数也足够大,达到了2128(3.4×1038)个,所以随机生成两个相同GUID的可能性是非常小的,但并不为0。所以,用于
阅读全文
使用Lucene.Net管理索引实现搜索
摘要:之前使用一直是没有问题的,只到今天发现删除的时候无法删除,增加的时候却一直在增加,导致搜索的时候可以搜出来很多相同的结果。小猪决定趁今天这个机会好好的把这个问题给解决了。private void ProcessJobs(IndexWriter writer){ while (jobs.Count != 0) { IndexJob job = jobs.Dequeue(); writer.DeleteDocuments(new Term("Id", job.Id.ToString()));//先执行删除的操作 //如果“添加文章”任务再添加,...
阅读全文
使用反射来编写实体类的XML
摘要:前言:开发过程中经常需要返回某实体类的列表,公司通常用的都是XML格式的接口,小猪借鉴了公司前辈留下的代码一直是类似这么写的:public static string GetXMLList(IList articlelist){using (MemoryStream memoryStream = new MemoryStream()){ XmlWriterSettings xmlWriterSettings = new XmlWriterSettings(); xmlWriterSettings.Indent = true; xmlWriterSettings.Encodin...
阅读全文
C#拉姆达(=>)表达式
摘要:前言:之前小猪曾经分享过自己对C#委托的一点理解其实在使用委托的过程中我们会大量的使用拉姆达(=>)表达式介绍:"Lambda表达式"是一个匿名函数,是一种高效的类似于函数式编程的表达式,Lambda简化了开发中需要编写的代码量。它可以包含表达式和语句,并且可用于创建委托或表达式目录树类型,支持带有可绑定到委托或表达式树的输入参数的内联表达式。所有Lambda表达式都使用Lambda运算符=>,该运算符读作"goes to"。Lambda运算符的左边是输入参数(如果有),右边是表达式或语句块。Lambda表达式x => x * x读作&
阅读全文
C#抽象类、抽象方法、抽象属性
摘要:定义在C#中使用关键字 abstract 来定义抽象类和抽象方法。不能初始化的类被叫做抽象类,它们只提供部分实现,但是另一个类可以继承它并且能创建它们的实例。"一个包含一个或多个纯虚函数的类叫抽象类,抽象类不能被实例化,进一步一个抽象类只能通过接口和作为其它类的基类使用."- C++ Programming Language by Stroustrup Chapter13.2抽象类能够被用于类,方法,属性,索引器和事件,使用abstract 在一个类声明中表示该类倾向要作为其它类的基类成员被标示成abstract,或被包含进一个抽象类,必须被其派生类实现。abstract
阅读全文
C# HTTP 断点续传
摘要:在IIS中,磁盘路径对应的文件是可以直接下载的,而原生的IIS并不需要额外的配置就可以进行断点续传。而在小猪的项目中使用到的文件下载地址不对应磁盘路径的文件地址,而是需要验证用户是否有权限进行下载然后使用使用fileresult提供文件下载。这样整个下载过程都需要自己动手写代码完成。为了使客户端的体验更佳,所以必须要提供断点续传的功能。断点续传的原理其实断点续传的原理很简单,就是在 Http 的请求上和一般的下载有所不同而已。 打个比方,浏览器请求服务器上的一个文时,所发出的请求如下: 假设服务器域名为 wwww.smallerpig.com,文件名为 down.zip。GET /down.z
阅读全文
C#操作JSON字符串
摘要:在前面的文章中,小猪分享过如何将json字符串转换成js对象,具体请看传送门。那如果是前台通过js等其他东东发送过来的json字符串我们要如何将其转换成C#对象呢?如果是post过来的json数组的话我们可以直接使用Request.Form[""]的方式获取值。今天小猪分享的是如何将json数组转换成C#对象。首先引用,using System.Web.Script.Serialization;第二部:定义实体类class Entity{ public int status { get; set; }}第三部:定义泛型转换public static T JSONToObje
阅读全文
Visual Studio 解决Windows Web服务框架中出现了无法识别的错误
摘要:使用的是Visual Studio2012 ULT 控制台项目按ctrl+F5可以运行,不可以直接按F5调试,出现“尝试运行项目时出错(项目地址)Windows Web服务框架中出现了无法识别的错误”。可是调试ASP.NET程序却没有问题。小猪遇到这个问题很是郁闷,不知道是什么地方出现了问题,百度了好久都没有个正式的解决方案,例如http://bbs.csdn.net/topics/390511663只好谷歌了一下。http://connect.microsoft.com/VisualStudio/feedback/details/781459/visual-studio-versucht-e
阅读全文
C#和JS的日期格式转换
摘要:C#和JS的日期格式互相转换遇到了问题,我们从.NET服务器端序列化一个DateTime对象的结果是一个字符串格式,如 '/Date(1335258540000)/' 这样的字符串。整数1335258540000实际上是一个1970 年1月1日00:00:00至这个DateTime中间间隔的毫秒数。通过javascript用eval函数可以把这个日期字符串转换为一个带有时区的Date对象,如下用var date = eval('new ' + eval('/Date(1335258540000)/').source)这样即可得到一个JS对象通过a
阅读全文
Js操作后台返回的json数据
摘要:项目开发工程中经常有类似这样的需求,前台向后台请求一个json数据,后台返回json字符串提供前台,js获取之后对前端进行对应的操作。 这里需要主要的是在前台获取到json字符串后需要转换成json对象://JSON字符串: var str1 = '{ "name": "cxh", "sex": "man" }'; //JSON对象: var str2 = { "name": "cxh", "sex": "man" };
阅读全文
C#使用SharpZipLib编辑zip包中内容
摘要:小猪最近在使用SharpZipLib进行zip包的操作,编写了下列测试代码。static void Main(string[] args){ Console.WriteLine("---------------------Zip包中的文件并解压测试-------------------------"); string content; string filename = @"E:\wamp.zip";//需要测试的zip包地址 string searchname = @"Web.config"; using (FileStream f
阅读全文
浙公网安备 33010602011771号