最新评论
用abstract class 写插件非常不好。。应该用接口
Re:插件技术原理及其C#实现(二)用C#编写插件 Jack Fan 2009-08-18 00:02
好文章,期待第三讲!
re: 插件技术原理及其C#实现(二)用C#编写插件 benqteamilk 2009-06-27 10:47
第三篇文章呢?十分期待
re: 插件技术原理及其C#实现(二)用C#编写插件 wing.elf 2009-01-22 21:21
刚刚实现了一个erp系统中的插件,发现可以在插件中继续在设计一个插件,无限扩展。。。
--引用--------------------------------------------------
tdy: Tiray Blog Ping 并没有真正检测返回的flerror值吧?我用FIDDLER截获的数据包表明,某些网站返回了不支持weblogUpdates.extendedPing的信息,但是软件依然提示"完成"
--------------------------------------------------------
遇到你这样的高手,我还能说什么呢?只有尽快更新下一版了!
楼主留下名来!
Tiray Blog Ping 并没有真正检测返回的flerror值吧?我用FIDDLER截获的数据包表明,某些网站返回了不支持weblogUpdates.extendedPing的信息,但是软件依然提示"完成"
re: 插件技术原理及其C#实现(二)用C#编写插件 ServerLandon 2008-04-21 16:09
呵呵,恭候lz下文阿
--引用--------------------------------------------------
ServerLandon: "不知道IUnkonw接口和QueryInterface函数,你怎么可能通过Microsoft的MCSD认证考试?"
上面这句话楼主有笔误
--------------------------------------------------------
多谢指正!
re: 插件技术原理及其C#实现(一)插件技术原理及其特性 ServerLandon 2008-04-19 17:14
"不知道IUnkonw接口和QueryInterface函数,你怎么可能通过Microsoft的MCSD认证考试?"
上面这句话楼主有笔误
--引用--------------------------------------------------
天下叁: 汗一个,我不是那个意思。我说的是比如你通过插件获得多个对象后,然后设置这些对象的一些属性,然后程序关闭了。等下次程序启动的时候,要重新获得上次设置的这些对象,这个就需要序列化,而不是说的是去获得插件的属性,插件的属性可以通过attribute来描述。
--------------------------------------------------------
可能是我说的不太清楚吧!在下一讲中我会向您详细解释插件的序列化的。实际上在我的一个工控软件项目中,我就是用序列化保存插件实例的有关设置的。
--引用--------------------------------------------------
BigBar: --引用--------------------------------------------------
Lucky Jack: 学习了,为什么我的VS05下没有"Activex Test Container”"呢?
--------------------------------------------------------
我的也没有!
--------------------------------------------------------
可能是安装vs.net2005的时候没有选择安装吧!
汗一个,我不是那个意思。我说的是比如你通过插件获得多个对象后,然后设置这些对象的一些属性,然后程序关闭了。等下次程序启动的时候,要重新获得上次设置的这些对象,这个就需要序列化,而不是说的是去获得插件的属性,插件的属性可以通过attribute来描述。
--引用--------------------------------------------------
Midapex Village: 使用Sytem.Reflection.Assembly类的CreateInstance方法创建的实例怎么序列化呢,怎么保存它们楼主考虑没有?而且Directory.GetCurrentDirectory()+@"\plugin";使用这个作为目录在复杂引用的时候,会导致引入组件失败。最好是放在Directory.GetCurrentDirectory目录中。
--------------------------------------------------------
序列化和运行时创建实例并不冲突啊,关键是看在代码中如何实现了。在我所举的例子里,每一个插件都需要有一个实例,所以我这样用了。一种更常用的方法是使用Sytem.Reflection.Assembly类的CreateInstance方法创建一个临时的实例,用于获取插件的一些有关信息,如插件的名称等,以提供给用户交互时使用。您所说的复杂引用问题确实存在,可以通过在环境变量中添加相关运行目录的方法解决。
re: 插件技术原理及其C#实现(二)用C#编写插件 Lucky Jack 2008-04-17 14:11
学习一下,以前用过插件,但不是很理解其原理,那是是菜鸟啊!

,虽说现在也是,但比那是要强一点!
re: 插件技术原理及其C#实现(二)用C#编写插件 Klesh Wong 2008-04-17 14:00
是不是某些部份可以交给IoC去做?
特别是如果plugin可能会依赖于其它的plugin或者原有系统中的某些service的时候。
--引用--------------------------------------------------
Lucky Jack: 学习了,为什么我的VS05下没有"Activex Test Container”"呢?
--------------------------------------------------------
我的也没有!

路过,学习!
re: 插件技术原理及其C#实现(二)用C#编写插件 Midapex Village 2008-04-17 12:21
使用Sytem.Reflection.Assembly类的CreateInstance方法创建的实例怎么序列化呢,怎么保存它们楼主考虑没有?而且Directory.GetCurrentDirectory()+@"\plugin";使用这个作为目录在复杂引用的时候,会导致引入组件失败。最好是放在Directory.GetCurrentDirectory目录中。
look at this:
http://www.msup.com.cn/viewCourse,2008414-1057.aspx
It is all about the extensibilities of software systems.
--引用--------------------------------------------------
leadnt.org: 疑问:framework是03年后推出的吗?应该是01年吧?
--------------------------------------------------------
是我不够严谨!以后会注意的!
--引用--------------------------------------------------
未注册用户: 人家说了.NET就是COM 3.0
你如果学习过COM的话,你会发现.NET及C#的许多特性都是从COM来的
--------------------------------------------------------
有道理!学习了!
人家说了.NET就是COM 3.0
你如果学习过COM的话,你会发现.NET及C#的许多特性都是从COM来的
学习了,为什么我的VS05下没有"Activex Test Container”"呢?
@Justin
微软大部分软件都基于COM,比如Office。装好Office之后,注册表会多出很多COM项
期待后续文章。
其实一直对像Eclipse那样的插件架构很感兴趣
疑问:framework是03年后推出的吗?应该是01年吧?
插件怎么可能过时呢?
现在写程序哪个人没有调用别人的dll呢?
软件破解研究工作室!破软件找我们
官方网站:
http://wwwpj.zhan.cn.yahoo.com
电子邮箱:591103983@qq.com
qq号码: 591103983
电话:13157158238(张威)
软件破解研究qq群:40691973
专业软件开发,修改,oem,加密解密,复制狗,克隆狗,反编译,逆向工程等服务
破解新的软件请联系 ,一般在3个工作日可以完成

支持,俺觉得插件不会过时,最多会被其他的形式所替代,反正浏览器总要扩展。