摘要:
(一)框架整体构想在应用程序开发过程中,存在很多模块重复开发的烦恼,于是收集资料开始动手,设计开发这插件系统框架,框架用于整合各个子插件。设计阶段一:将接口定义成单独程序集,让插件去实现这个接口,框架采用反射来完成子插件功能的读取。问题:1. 要定义若干接口。2. 对于现在已存的模块修改太大。设计阶段二:着力于对第一阶段第二个问题解决,在协议接口和插件间添加一个适配器,有了这样的结构,就能将现有已存在模块方便地与主机框架整合设计阶段三:在阶段二的启发下,解决在阶段一中的要事先定义若定义接口的问题。改进,在接口协议与主机框架间加适器,让接口协议义与主机开发断开问题:插件与协议,主机-协议藕合较大 阅读全文
摘要:
首先简单介绍下T4(Code Generation and Text Templates),也就是有一些文本模板和控制逻辑组成的混合体,可以使用这些模板生成程序中的部分源代码。 在Visual Studio中这些模板只是简单的文本而已,那么是如何解析这些文本生成代码文件的呢?生成的关键就在于文件的“自定义工具”属性,在Visual Studio中“文本模板”的后缀为.tt,添加“文本模板”文件,查看文件的属性,会发现“自定义工具“属性值为”“TextTemplatingFileGenerator”,如下图所示: 尝试修改其他文本文件的“自定义工具”属性为“TextTemplatingFileG 阅读全文
摘要:
本文主要描述在C#中线程同步的方法。线程的基本概念网上资料也很多就不再赘述了。直接接入 主题,在多线程开发的应用中,线程同步是不可避免的。在.Net框架中,实现线程同步主要通过以下的几种方式来实现,在MSDN的线程指南中已经讲了几 种,本文结合作者实际中用到的方式一起说明一下。1. 维护自由锁(InterLocked)实现同步2. 监视器(Monitor)和互斥锁(lock)3. 读写锁(ReadWriteLock)4. 系统内核对象1) 互斥(Mutex), 信号量(Semaphore), 事件(AutoResetEvent/ManualResetEvent)2) 线程池除了以上的这些对象之 阅读全文