posted @ 2008-07-14 23:10 RogerTong 阅读(1333) | 评论 (16) 编辑 |
07 2008 档案
1. 建立一个新的AppDomain: AppDomain.CreateDomain()。
2. 利用的AppDomain的实例,采用 CreateInstanceFromAndUnwrap() 方法在新的AppDomain中构建一个指定的类型,并返回相应的Proxy。
3. 根据获取的Proxy就可调用插件了。
4. 卸载时,完成一些资源清理后可以直接对新建出的AppDomain进行UnLoad
阅读全文
posted @ 2008-07-12 10:21 RogerTong 阅读(1748) | 评论 (9) 编辑 |
posted @ 2008-07-12 03:08 RogerTong 阅读(1561) | 评论 (16) 编辑 |
posted @ 2008-07-11 20:24 RogerTong 阅读(2107) | 评论 (9) 编辑 |
posted @ 2008-07-11 14:09 RogerTong 阅读(2098) | 评论 (5) 编辑 |
posted @ 2008-07-10 11:59 RogerTong 阅读(2480) | 评论 (1) 编辑 |
posted @ 2008-07-09 16:42 RogerTong 阅读(749) | 评论 (2) 编辑 |
在很多朋友的眼中,AOP似乎是一个很神秘的东西,其实在我看来,AOP的本质就是对一切操作行为的拦截,在.Net中,AOP的本质更简单,纯粹是对方法的拦截。为什么这么说呢?因为在.Net中,一切的操作都是方法调用:事件的 “+=” 及 “-=”最终被转换为 Addxxxx(...),Removexxxxx(...)类型的方法;属性的 get/set 过程也被转换为 getxxxxxx(...),setxxxxxx(...)类型的方法;而方法的本身就更不用说了……阅读全文
posted @ 2008-07-09 16:42 RogerTong 阅读(2568) | 评论 (3) 编辑 |
我们来看看现在的应用场景:同样是对两个数值进行运算,MathOne是基本并且稳定的运算服务,负责对这两个数据相加并返回值。但是由于新的用户的需求发生了改变,他们希望获得的值是MathOne结果的平方数,例如:
如果我们传入的值是 (2,3),旧用户期望得到的值是 2+3 = 5 ,而新用户期望的值是 MathOne 运算结果的平方数,即是 5 2 = 25。
由于需要同时考虑新的需求并兼容旧的用户,所以我们需要加多一个插件项来为新用户响应需求。
为了让大家看起来不那么吃力,我们还是重述一下相关的接口及 MathOne 的实现阅读全文
posted @ 2008-07-09 16:40 RogerTong 阅读(219) | 评论 (0) 编辑 |
我们想像一下有这样的一个应用场景:我们需要对两个数值运算并返回一个结果,这个运算交由一个独立的运算过程来进行,我们并不关心运算的具体细节,我们只需要运算过程返回一个结果,先来看看这个运算接口的定义阅读全文
posted @ 2008-07-09 16:39 RogerTong 阅读(132) | 评论 (0) 编辑 |
Mussel的加载器在加载时,会尝试读取当前文件夹以下(包含子文件夹)的所有*.addin文件,每个addin文件被Mussel加载器识别、加载后,便会形成如上图所示的IAddin对象,如果每个插件都是独立的,这个过程就非常简单。但是插件之间必须然会有一些联系,例如,如果系统的工具栏是一个稳定的插件(addin),如果金山词霸有一个扩展,能添加一个按钮到系统的工具栏中,我们先来看看摸拟的配置文件,为了方便说明,我们假定 ClassKey指示的类型都存在并忽略掉程序集引入的配置部分。阅读全文
posted @ 2008-07-09 16:26 RogerTong 阅读(176) | 评论 (0) 编辑 |
上图是IAddinItem接口的全部方法与属性,从前三个属性中,我们不难看出Addin插件树的组成方式,可以想像的是AddinNode中自然还包插了IAddin的对像。
Properties属性是插件加载时,从Addin配置文件中读取的对应的AddinItem的配置信息。而通过this属性可以轻松的访问到当前插件项目的子插件项目……阅读全文
posted @ 2008-07-09 16:11 RogerTong 阅读(224) | 评论 (0) 编辑 |
Mussel提供了一个装载器,这个在以后的文章中会讲到。装载器的Start方法调用时,装载器遍历Mussel程序集所在文件夹以及所有的子文件夹,搜寻 *.addin 的插件配置文件。在这里,我们先看一个addin文件的演示……阅读全文
posted @ 2008-07-09 15:42 RogerTong 阅读(300) | 评论 (1) 编辑 |
posted @ 2008-07-09 15:32 RogerTong 阅读(408) | 评论 (0) 编辑 |
