随笔分类 -  C#

摘要:Log4Net应该可以说是DotNet中最流行的开源日志组件了。以前需要苦逼写的日志类,在Log4Net中简单地配置一下就搞定了。没用过Log4Net,真心不知道原来日志组件也可以做得这么灵活,当然这系列的教程讲的是Log4Net的应用。学习完这系列的教程,你可以实现如下图一样整洁、醒目的日志文件。教程中的每一篇文章都有可以运行的例子,并且教程里面的例子基本上都是典型的应用,你可以直接拿来用。我整理了一个Log4Net的配置文件Log4Net.config和一个日志帮助类LogHelper,你可以直接拷到你的项目中,然后就可以直接用了,什么都不用自己写。 关于教程的介绍第一、第二篇教程主要是给 阅读全文
posted @ 2013-10-29 08:30 陈哈哈 阅读(26075) 评论(43) 推荐(86) 编辑
摘要:设置Cookie读取CookieCookie原理服务器返回数据除了普通的Html数据以外,还会返回修改的Cookie,浏览器把那道的Cookie值更新到本地浏览器的Cookie就可以了。以上截图来自 传智播客 视频教学PPT 阅读全文
posted @ 2012-04-29 20:00 陈哈哈 阅读(240) 评论(0) 推荐(0) 编辑
摘要:禁用整个页面的ViewState:<%@ Page Language="C#" EnableViewState="false" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="SZTZ.Default" %>只需要在首行添加禁用EnableViewState="false" 即可禁用单个控件的ViewState:可以在控件里面的EnableViewState,然后禁用就可以了。为什么要用V 阅读全文
posted @ 2012-04-29 19:33 陈哈哈 阅读(196) 评论(0) 推荐(0) 编辑
摘要:using (DBAccessDataContext db = new DBAccessDataContext()){while(某个条件){ HistoryDatas = db2.ExecuteQuery<HistoryData>(sFetchData, new object[] { Time }).ToList(); }}这样就没有错误。如果去掉Using就会出错,为什么? 阅读全文
posted @ 2012-03-07 00:56 陈哈哈 阅读(502) 评论(0) 推荐(0) 编辑
摘要:错误 2 “System.Collections.Generic.IEnumerable<TestDAL.HistoryData>”不包含“ToList”的定义,并且找不到可接受类型为“System.Collections.Generic.IEnumerable<TestDAL.HistoryData>”的第一个参数的扩展方法“ToList”(是否缺少 using 指令或程序集引用?)J:\太阳能近期\政府小区即时通信\testXML\TestDAL\Program.cs101 74 TestDAL这个错误是因为没有“using System.Linq;”,导则IEnu 阅读全文
posted @ 2012-03-07 00:52 陈哈哈 阅读(657) 评论(0) 推荐(0) 编辑
摘要:问题描述:在用foreach遍历hashtable的时候,弹出“集合已修改;可能无法执行枚举操作。”问题代码: private void Check(int TimeOut) //这是一个存活检查线程,为了把连接失效的主机剔除 { DateTime t = DateTime.Now;//取出当前的时间 //Hashtable foreach (DictionaryEntry item in _transmit_tb)//弹出“集合已修改;可能无法执行枚举操作。” { if ((t - (DateTime)Time... 阅读全文
posted @ 2012-02-29 01:55 陈哈哈 阅读(8400) 评论(0) 推荐(0) 编辑
摘要:通过vs2010自带的进程窗口可以很方便地看到,哪一些进程正在运行。以前一直不知道他具体是怎么运作的。现在总算清楚了。黄色的箭头代表当前活动的进程。“进程窗口”不可用的时候,就说明主线程和活动进程都阻塞了。由于我的主线程是用来接收外部的socket连接的,所以阻塞是正常的。但是副进程是用来发送存活命令的,所以阻塞就可能有点原因了。 阅读全文
posted @ 2012-02-28 09:56 陈哈哈 阅读(274) 评论(0) 推荐(0) 编辑
摘要:从网上的资料判断,调试多线程程序似乎就一下3种方法。1、在日志的某个地方写日志文件。优点:不会干扰程序的执行,特别是对网络的多线程通信。缺点:每次都需要打开日志文件以查看进程运行的信息。2、利用断点进行调试。优点:直观,可以直接看到运行过程的值缺点:在多个线程设置断点,可能让程序跳来跳去,还需要额外地分出一部分精力用来理清程序的逻辑3、利用弹出窗口来查看进程调试的信息。优点;直观缺点;在调试网路通信的时候,使得通信的过程产生延时,导致通信失败。4、利用vs2010自带的线程窗口来调试优点:直观,可以直接从进程图上看到哪个进程是活动进程,哪些进程处于阻塞状态。缺点:需要结合断点调试,基本上... 阅读全文
posted @ 2012-02-28 09:50 陈哈哈 阅读(4520) 评论(0) 推荐(0) 编辑
摘要:原文链接:http://stackoverflow.com/questions/703137/how-to-make-a-value-type-nullable-with-net-xmlserializer留给自己,有空翻译 阅读全文
posted @ 2012-02-17 20:00 陈哈哈 阅读(183) 评论(0) 推荐(0) 编辑
摘要://///xsd 文档<?xml version="1.0" encoding="utf-8"?><xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="userInput"> <xs:complexType> 阅读全文
posted @ 2012-02-17 01:55 陈哈哈 阅读(432) 评论(0) 推荐(0) 编辑
摘要:问题描述:为了防止界面卡死,在服务端我新开了一个进程来监听客户端的连接请求,在关闭的时候却却提示“一个封锁操作被对 WSACancelBlockingCall 的调用中断”。如图具体错误代码: private void InitForm() { MyController = new ControllerManager(this); /创建一个新的进程,以防界面卡死 new Thread(MyController.Load).Start(); }注:MyController.Load()里面: Socket newClient = _tcpl.... 阅读全文
posted @ 2012-02-02 14:04 陈哈哈 阅读(3464) 评论(0) 推荐(0) 编辑