摘要:
使用HttpWebRequest发送HTTP请求,同时支持GET/POST方式提交。 理论上支持任何HTTP 1.1 协议谓词,不过就实际使用情况来说,仅对GET/POST方式进行了测试,其他谓词并未测试。/// /// 使用HttpWebRequest发送HTTP请求,同时支持GET/POST方式提交。/// /// 要访问的URL地址/// /// 任何HTTP 1.1 协议谓词:GET、HEAD、POST、PUT、DELETE、TRACE 或OPTIONS。/// 页面使用的编码/// /// /// 请注意:/// /// 中如果有中文,则需要使用Uri.EscapeDataStri. 阅读全文
随笔档案-2010年03月
C#中如何获取一个字符串的实际字符数
2010-03-28 18:32 by uonun, 2991 阅读, 收藏, 编辑
摘要:
在包含中文的字符串处理时,除了裁切固定长度的操作之外,有时也需要获取一个字符串的实际字符数,比如我们限制输入框字符数的时候。而C#提供的string.Length属性却无法满足我们的要求,由此,便有了下面这个方法:/// /// 获取字符串长度。与string.Length不同的是,该方法将中文作 2 个字符计算。/// /// 目标字符串/// public static int GetLength(string str){ if (str == null || str.Length == 0) { return 0; } int l = str.Length; int r... 阅读全文
[海康开发笔记]将内存片段格式化为C#类对象时需要注意对象的字段顺序
2010-03-28 18:28 by uonun, 387 阅读, 收藏, 编辑
摘要:
将内存片段byte[] data 格式化为结构或类实例时,结构/类的属性或字段定义顺序将影响格式化结果。如海康设备向注册中心发送的数据表中,包头信息类的定义:/// /// 设备向服务器:MsgRetHeader /// [StructLayout(LayoutKind.Sequential)]public class MsgRetHeader : CmdHeader{ /// /// 海康与平台厂家协商定义的标记,此标记在前端PU与平台对接中保持一致,不能单方面修改,现阶段信令部分为0x53584C54,码流部分为0x53585354 /// public uin... 阅读全文
C#中查询字符串中是否包含指定字符/字符串,使用IndexOf还是Contains?
2010-03-28 18:27 by uonun, 6186 阅读, 收藏, 编辑
摘要:
C#中查询字符串中是否包含指定字符/串,使用IndexOf还是Contains?这是一个很常见的命题,以前也没有注意,今天QQ群里有人提起,于是就做了下试验,代码如下:using System;using System.Diagnostics;namespace ConsoleApplication1{ class Program { private const int N = 10000000; private static Stopwatch watch = new Stopwatch(); static void Main(strin... 阅读全文
[.axd]“WebForm_PostBackOptions未定义”及其他相关问题的相关解决方法
2010-03-28 18:24 by uonun, 760 阅读, 收藏, 编辑
摘要:
一个.NET的web项目,本来运行得非常好的,突然之间报了WebForm_PostBackOptions未定义这么个js错误,然后导致了页面无法PostBack,很严重,很生气。顺藤摸瓜,毕竟"WebForm_PostBackOptions"这个东西并不是我自己定义的,看样子,有点像微软的东西,于是便摸到了源代码中的这句:相信做.NET的同仁已经对这句代码都习惯了,这个是微软自动生成的动态JS文件,用于支持ASP.NET中WebForm的一些基本代码。但今天的问题就恰好出在这里,我直接在浏览器访问这个地址,果然,产生了服务器异常,JS根本就没有输出出来。(以下异常由uoLi 阅读全文
C#中使用API(SHFileOperation)进行文件操作,特别说明了回收站相关参数
2010-03-28 18:22 by uonun, 850 阅读, 收藏, 编辑
摘要:
项目中使用了磁盘阵列柜,每秒有上百兆的数据存入磁盘,这就有了从磁盘删除文件的需求。为了满足这一需求,我做了一个用于删除过期数据的系统服务。说来这个东西本身是很简单的,但是由于数据量的巨大价值磁盘阵列空间容量的巨大(8T,1T=1024G),在实际操作中也遇到了不少麻烦。需求很简单,遍历磁盘指定目录下的所有目录和文件,根据一个比较规则判定文件是否过期,如果过期就删除。最初的设计也很简单,三个步骤:遍历 -> 过期检测 -> 删除。有了需求和程序框架设计,于是开始实施。在C#中,DirectoryInfo和FileInfo为我们提供了足够的方法,在程序第一次成型的时候我主要使用了下面的 阅读全文
在C#中截取指定长度的中文字符串(效率提高2500倍)
2010-03-28 18:17 by uonun, 1002 阅读, 收藏, 编辑
摘要:
C#中字符串截断本没有那么麻烦,问题就出在string.Substring()这个方法将中文也按一个字符计算,导致我们在实际应用中截取字符串(中英文组合)后的“长度”不一致。国际惯例,在网上搜索了一下,大致得到了两中截断算法: 1. 从起始位置取得字符 -> 逐一用正则表达式匹配 -> 拼接成最终字符串。(这是广为流传的方法,也是效率最低的方法。) 2. 从起始位置取得字符 -> 逐一用ASCII比较 -> 再拼接成最终字符串。相比之下,算法2比算法1高明,毕竟ASCII比较比正则表达式的执行效率更高。但最终,我仍然没有使用算法2,而是进行了进一步的优化:public 阅读全文
C#中IP地址与数字之间的互转(网上流传的方法有Bug)
2010-03-28 18:15 by uonun, 424 阅读, 收藏, 编辑
摘要:
ConvertIPAddressToNumber项目中有IP与Int32类型相互转换的需求,于是在网上搜索了相关代码,但发现网上的代码有Bug,加以修改发布如下:/// /// 将IPv4格式的字符串转换为int型表示/// /// IPv4格式的字符/// public static int IPToNumber(string strIPAddress){ //将目标IP地址字符串strIPAddress转换为数字 string[] arrayIP = strIPAddress.Split('.'); int sip1 = Int32.Parse(arrayIP[0]); . 阅读全文
Vista/Win7操作系统(64位)+IIS7设置常见问题
2010-03-28 18:14 by uonun, 690 阅读, 收藏, 编辑
摘要:
注:以下内容同样适用于 Windows 7 系统。自从装了Vista(64位),问题就一个一个来。现在就连IIS(7.0.0.0)里运行一个简单的ASP程序都出问题了。在开始正文之前,我想纠正一些错误认识:Vista + IIS7支持Asp+Access无需更改应用程序池。 以我自己的实践证明,使用默认的DefaultAppPool即可,你甚至可以停用Classic.NET AppPool。Windows Vista Enterprice版本同样含有IIS,当然也可以安装IIS。 Windows Vista Enterprice:这个版本在Windows Vista Business的基础上增 阅读全文