摘要:
C#中调用静态方法、非虚实例方法和虚实例方法的过程和区别。 阅读全文
摘要:
所谓单例(Singleton)就是在应用程序运行期间,某个类型对外公布的实例始终是同一个,同一个的意思并不是说相等的,而是相同的,我们可以利用object的一个静态方法object.ReferenceEquals(而非object.Equals)来测试单例。
1、首先,该Singleton的构造函数必须是私有的,以保证客户程序不会通过new()操作产生一个实例,达到实现单例的目的。
2、其次,尽可能的把单例的类用sealed关键字修饰,防止类被继承。
2、因为静态变量的生命周期跟整个应用程序的生命周期是一样的,所以可以定义一个私有的静态全局变量instance来保存该类的唯一实例;
3、必须提供一个全局函数或者静态属性访问获得该实例,并且在该函数或者属性内部提供控制实例数量的功能,即通过if语句判断instance是否已被实例化,如果没有则用new()创建一个实例;否则,直接向客户返回一个实例。 阅读全文
摘要:
Log4Net配置详解配置方式一在相应的应用程序的配置文件中配置,(WinForm对应的是*.exe.config,WebForm对应的是*.config),本实例是Web应用程序,以Web.config为例子讲解。第一步添加并应用Log4net.dll。然后在Web.config文件中添加下面的配... 阅读全文
摘要:
Log4Net结构详解当我们在描述为系统做日志这个动作的时候,实际上描述了3个点;做日志,其实就是在规定,在什么地方 用什么日志记录器 以什么样的格式做日志。把三个最重要的点抽取出来,即什么地方,日志记录器,什么格式。在Log4net中,就使用了三个最重要的组件来描述这三个要素,即Logger:日志... 阅读全文
摘要:
如果项目上过线的话,那你一定知道Log是多么重要。为什么说Log重要呢?因为上线项目不允许你调试,你只能通过Log来分析问题。这时打一手好Log的重要性绝不亚于写一手好代码。项目出问题时,你要能拿出Log证明自己负责的部分没有问题,如果是自己的问题,要从Log里快速找出错误原因。如果没有从Log里找... 阅读全文
摘要:
如何使用vs2010在类文件中添加文件头部注释。 阅读全文
摘要:
上篇说到当一个Http请求流到HttpHandler这里时才开始对它的处理,那么一个请求经过HttpHandler之后,到底怎么对它处理呢,也就是说HttpHandler会触发哪些事件,触发的顺序如何,我们可以在此中间做些什么?话说我们今天的重中之重:页面生命周期,说的就是Page类在处理页面的过程中都发生了哪些事件,而这些事件又是按照什么顺序发生的。ASP.NET的页面生命周期跟我们之前的理论讲解完全不同,它具有非常强大的实用性,所以我想通过一个小例子来进行解释和说明,以便让大家看起来更清晰和容易理解。因为Page类的ProcessRequest方法实现非常的复杂,我把代码反编译过来给大家看 阅读全文
摘要:
如果您看了我的前四篇文章,应该知道目前Http请求已经流到了HttpModule这个程序员手中了,而且我们可以注册自己的HttpModule并且可以在里面注册一些事件来控制这个Http请求,但是到目前为止我们还没有真正的处理这个Http请求,那究竟什么时候开始处理呢,又是怎样处理的呢,下面我们来简单探讨一下!其实是在HttpModule中触发PreRequestHandlerExecute事件之后,才真正把控制权交给了HttpHandler这个程序员,在第一篇中我们说到,HttpHandler它他天生就会处理页面,它用了一招“乾坤大挪移”的功夫,就把上下文Context中的Request对象给 阅读全文
摘要:
上回我们说的当一个Http请求来到HttpModule这里的时候,Asp.Net内部并未对这个Http请求做出任何的处理,我们可以对这个Http请求添加一些我们需要的信息,以方便我们控制这个Http请求。我们添加控制信息一般情况下是通过添加一些事件来控制的,那么HttpModule内部到底有哪些事件呢,他们的执行顺序又是怎样的呢?1、HttpModule的事件BeginRequest指示请求处理开始AuthenticateRequest封装请求身份验证过程AuthorizeRequest封装检查是否能利用以前缓存的输出页面处理请求的过程ResolveRequestCache从缓存中得到相应时候 阅读全文
摘要:
上文讲到了HttpRunTime主要做了三个事情,我们先回忆一下。第一:雇佣了项目经理(HttpApplication)。第二:建立了HttpModule列表,项目经理(HttpRunTime)就是按照这个工作列表去工作的。第三:创建了Context上下文对象(包含了HttpRequest和HttpResponse两大主要对象),并把它转交给了HttpApplication去处理。下面最重要的是HttpModule到底是个什么东东,HttpApplication又是怎么样按照它的工作列表去工作的。当一个请求到达HttpModule时,整个Asp.Net系统并没有对这个Http请求做任何的处理, 阅读全文