SystemFrameWork项目
  SystemFrameWork项目是一个能直接移植到别的应该程序的项目,可以不修改或很少的修改代码而直接使用。
  项目主要为3个类。
   1.ApplicationConfiguration类
    此类为应用级的配置类,实现IConfigurationSectionHandler接口。与前面讲的DuwamishConfiguration类实现方法类同。主要方法为Create(),OnApplicationStart(),ReadSetting()。
    如果要使用此类,需于Global.asax的Application_OnStart事件中调用ApplicationConfiguration.OnApplicationStart(Context);
 public static void OnApplicationStart(String myAppPath)
        {
            appRoot = myAppPath;
            System.Configuration.ConfigurationSettings.GetConfig("ApplicationConfiguration");
            System.Configuration.ConfigurationSettings.GetConfig("DuwamishConfiguration");
            System.Configuration.ConfigurationSettings.GetConfig("SourceViewer");
        }
此方法通用调用ConfigurationSettingis.GetConfig()方法通过Web.Config中的取得对应的解析类,调用相应的Create()方法。如果没有对应的配置解析类则可直接调用System.Configuration.NameValueSectionHandler类解析,GetConfig("SourceViewer")即是如此。
    2.ApplicationAssert类
    此类主要用来帮忙开发人员进行错误检查,日志记录等。主要有Check(),CheckCondition(),GenerateStackTrace()三方法和LineNumber属性。
     [ConditionalAttribute("DEBUG")]应用于Check(),和GenerateStackTrace()方法,如果Debug常量被定义,此方法可以被调用。
    3.ApplicationLog类
    此类主要用来进行日志记录。
    定义Error(1)、Warning(2)、Info(3)、Verbose(4)四个TraceLevel级别记录日志调试和跟踪信息.具体设置于Web.Config的配置节中定义。此类中所有方法均为static方法,是主要的为static void WriteLog(level,messageText)
如果写入的TraceLevel不大于配置中定义的级别,则把对应的调试、跟踪信息按定义的级别写入Windows 事件日志中和定义的跟踪文件中.
    ApplicationLog类的构造函数声明为private static,在对ApplicationLog类进行第一次调用时从配置文件中取得配置信息进行初始化。
   
疑问
    1.在 static ApplicationLog()中运用了System.Threading.Monitor,保证多线程操作的安全性。为什么对ApplicationLog要进行锁的控制?
 2.对System.Diagnostics命名空间中某些类理解不太清楚。

MSDN帮助
1.Monitor 类
      ms-help://MS.MSDNQTR.2003FEB.2052/cpref/html/frlrfsystemthreadingmonitorclasstopic.htm
 2.System.Diagnostics 命名空间(提供特定的类,使您能够与系统进程、事件日志和性能计数器进行交互)
      ms-help://MS.MSDNQTR.2003FEB.2052/cpref/html/frlrfsystemdiagnostics.htm

posted on 2007-09-18 22:24  qy  阅读(297)  评论(0编辑  收藏  举报