这东西比较早了,大概是从事K3Cloud后差不多半个月内写出来的吧,(其实还没半年233333).网上倒是也有不重启IIS修改插件的方法(比如那个用微软MEF的那个),但是粗略看了一下,不大实用,因为要封装大量接口才能满足日常开发需要(没仔细看,不对勿喷),不适合我的需求.
我的想法是这样的,只在开发的时候用,但是放到正式服务器上还是跟普通开发的一样(不知道各位有没听懂.....),MEF那种方式自然就达不到了. 所以当时写了这么个东西,原理吗....太简单没脸说(一句话:反射,哦不,是2个字)........就说下用法吧.
Ps:现在已转python脚本多年.....感觉良好,很少再写表单插件了,近期如果有空的话....打算做个支持操作插件的,这个毕竟比较实用,哎,等有空再说吧,说不定是明年的事了
1.在你的单据上挂上插件: SuyanaProject.K3Cloud.PlugInLoader.dll插件(文章最下面有Url),看你类型单据/动态表单/列表自己对号入座(大家可以挂在基类上,一劳永逸)....此时要重启IIS
2.你插件开发还是跟以前开发一样:比如我这Demo:namespaceSuyanaProject.K3Cloud.PlugInLoader.demo { public class demo1 : AbstractDynamicFormPlugIn { public override void ButtonClick(ButtonClickEventArgs e) { if ("F_SP_Button1".EqualsIgnoreCase(e.Key)) { this.View.ShowErrMessage(e.Key + "22222222"); } } }}////////////跟正常开发没有区别,编译放在bin文件
3.你的插件不用挂到表单上(正式发布再挂到表单上,并删除第一步挂上的插件),这时只要在bin目录新建个plugins.dll内容如下:[eb1d5abffbde4801a5a2a0799911302d]p1=SuyanaProject.K3Cloud.PlugInLoader.demo.demo1,SuyanaProject.K3Cloud.PlugInLoader.demo.dll
[你的表单FormId]P1这个随便输不重复即可=你的类的命名空间+类名,dll名
保存即可,以上......
enjoy!!!!!!!
Ps:你单据上可以放一个按钮,Key取值为: FBtnSPRefreshPlugin,这样,点击这个按钮的话就会重新载入插件,不然要关掉再打开才可以重新载入插件 截几张效果图表示下存在感(然而静态图并不能很好的表现....)更改代码,编译,放到bin,先点击第一个按钮,然后在点击第二个按钮:
最后好想吐槽啊,虽然装了cloud6有些日子了,但今天第一次用,简直是不给人活路啊,web跟客户端不能同时登录啊有木有,会被t啊有木有,以后不是不能边登网页边用bos ide的F5测试了?????????就不能同一个ip登录多次不t?????? (#-_-)┯━┯ (╯°□°)╯┴┴
SuyanaProject.K3Cloud.PlugInLo …(12.55KB)