11 2009 档案
Log4Net Name Entity 研究
摘要:Logger提供了多种方式来记录一个日志消息,你可以在你的应用程序里创建多个Logger,每个实例化的Logger对象都被log4net框架作为命名实体(named entity)来维护。 这意味着为了重用Logger对象,你不必将它在不同的类或对象间传递,只需要用它的名字为参数调用就可以了。 使用Hashtable 作为命名实体的容器,可以使用Name ,Ilogger的名值对,但是有一些地方用...
阅读全文
Log4net Repository 模块
摘要:一。 Repository 的意思是储存库,并且根据之前的分析,显然Repository模块 维护着系统中定义的ILogger,以及和Name,Assamble的对应关系,和Appender 的对应关系,那么现在要分析的就是: 如何实现命名实体。 如何支持实体查询。 实体查询是不是就是依赖查询呢? 二。 1.Hierar...
阅读全文
IOC 容器 和 Dependency Injection parttern 阅读
摘要:原文 http://martinfowler.com/articles/injection.html 由令人崇拜的Martin Fowler 撰文 1.基本概念 IOC : Inversion of Control 控制反转 DI : Dependency Injection ,依赖注入 Service Locator ,服务定位器 而这一起的目标就是 : 将组...
阅读全文
多线程编程(2)
摘要: ThreadPool.QueueUserWorkItem 的使用 ThreadStart的使用 1.线程互锁 C#提供了一个关键字lock,它可以把一段代码定义为互斥段(critical section),互斥段在一个时刻内只允许一个线程进入执行,而其他线程必须等待。在C#中,关键字lock定义如下: lock(expression) statement_block expre...
阅读全文
Log4net Logger模块 结构
摘要: 1.LogManager -- facade 用于与系统外部交互。 1.1 GetLogger 获取命名日志对象 获取assamble,也可以通过repository。 调用loggerManager 对得到 Ilogger 对象进行包装。 ?为什么不在loggerManager中进行包装呢?这里的包装器,又不能进行配置 LoggerMan...
阅读全文
多线程编程(1)
摘要:1.使用thread 实例 2.使用delegate ,BeginInvoke 多线程的问题: 1。线程间操作无效: 从不是创建控件“XXXXX”的线程访问它。 answer: "There are four methods on a control that are safe to call from any thread: Invoke, BeginInvo...
阅读全文
Log4net 专题
摘要:*专题 1.如何实现命名实体模式。 2.log继承体系如何实现。 3.LogManager 如何管理logger实例。 见 Log 模块分析 4.如何实现程序配置。 5.Repository 是如何管理日志对象的。 6.appender 如何实现的,如何应用于logger的? factory ,commmand ,observer ? 7.过滤器的作用,如何实现。 8.如何实现lay...
阅读全文
Log4Net 架构分析
摘要: log4net 有四种主要的组件,分别是Logger(记录器), Repository(储存库), Appender(附着器)以及 Layout(布局). 1 Logger Logger是应用程序需要交互的主要组件,它用来产生日志消息。产生的日志消息并不直接显示,还要预先经过Layout的格式化处理后才会输出。 Logger提供了多种方式来记录一个日志消息,你可以在你的应用程序里...
阅读全文
Spring.Net (4) readme
摘要:THE SPRING.NET FRAMEWORK, Release 1.2.0 (November 10, 2008) -------------------------------------------------------------------- http://www.springframework.net/ 1. INTRODUCTION The 1.2 release ...
阅读全文
Log4Net 使用注意
摘要:1.最好创建多个appender这样阅读更方便,减少文件读写时间。 2.log4net 不是线程安全的,所以要防止多线程操作时同时写入。 3. 要注意加 [assembly: log4net.Config.XmlConfigurator()]
阅读全文
spring.net(3) DI
摘要:在学习DI之前,要搞清楚几个问题 1.配置工厂 2.ServiceLocator 3.Registry 这几种方式是如何去创建或查找一个对象的。以及为什么我们称之为依赖查询(Dependency Lookup), 4.DI为什么会更好。 DI显然不是最好的,因为不同的情况要用不同的方法。。大牛说的 前面已经有了几个方法的比较,不同的情况选择不同的方法,效率是最重要的,过度设计是不可取的
阅读全文
Log4Net 配置实例
摘要:log4net Config Examples Overview This document presents example configurations for the built-in appenders. These configurations are designed to work with the log4net.Config.DOMConfigurator and the lo...
阅读全文
spring.net (2) overview
摘要:Spring.NET consists of the following modules. Click on the module name for more information. Spring.Core – Use this module to configure your application using Dependency Injection. Spring.Aop – Use ...
阅读全文
spring.net (1)简介
摘要:InfoQ:Spring.NET究竟是什么?为什么.NET社区需要使用它? Aleks:Spring.NET是一个开源的应用程序框架,它可以极大地简化.NET应用程序开发,甚至于很多功能如果没有它的支持,将非常难以实现。它同时也是 Java平台下流行的Spring框架的“亲弟兄”。但是,如果说Spring.NET仅仅是对Spring的移植,则有欠公允。事实上,我们在移植 Spring时,更注重对...
阅读全文
MSMQ 处理机制
摘要:1.基本处理方式 1.创建消息队列 2.发送消息 3.接收消息 public class MSMQ { /// <summary> /// 通过Create方法创建使用指定路径的...
阅读全文
配置模块开发(原创)
摘要:无论是winform,还是asp.net,如果可以开发成可配置的,就可以大大减少更新程序的次数了,而.net对这方面的支持也很好,是以面向对象方式处理的。1.配置节点,配置元素。下面的代码示例是用于处理这样的xml配置片段<LogHandle> <ReportHandle Use ="true" Interval="1" ManualHandleType="EMAIL">...
阅读全文