※关于可扩展应用程序的一些问题※

dalianu 2007-09-18 11:42:13
闲来无事,想研究一下可扩展应用程序。
先不考虑插件的权限问题
1.创建一个对外公布插件的api
2.从指定位置读取并且管理插件的一个类。
3.主应用程序。

一.现在的问题是,如果插件是不安全的,那么我加载到默认应用程序域里是有危险的。
是不是应该为每一个插件创建一个AppDomain,通过ObjectHandle.Unwrap获取,不安全就Unload.
还是另外有什么思路?
二.另外一个,就是加载插件时,如何防止同一个插件的不同版本(2个或者多个插件,只有版本不同)在程序集中同时出现?

如果有好思路可以另开贴给分。谢谢各位了。
PS:谢绝google结果.
...全文
184 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
danjiewu 2007-09-19
  • 打赏
  • 举报
回复
为插件创建一个应用程序域有什么必要吗?
版本问题的话,可能是根据给程序集分配的Guid来判断的。
wzuomin 2007-09-19
  • 打赏
  • 举报
回复
我也正在看那篇文章,C#的用法我不太会,我仅懂vb的。呵呵
好好研究研究吧,不是很难的。
dalianu 2007-09-19
  • 打赏
  • 举报
回复
To danjiewu(阿丹):

恩,就是在考虑有没有这个必要。担心插件破坏了程序集的稳定性。
sadever 2007-09-18
  • 打赏
  • 举报
回复
完全不懂,帮顶。
Red_angelX 2007-09-18
  • 打赏
  • 举报
回复
1.msn做得很好 不知道怎么做得
2。foobar里插件必须指定版本,和软件版本相同才能load
优途科技 2007-09-18
  • 打赏
  • 举报
回复
不太懂,但我帮着顶
wuyi8808 2007-09-18
  • 打赏
  • 举报
回复
没有思路。
Tensionli 2007-09-18
  • 打赏
  • 举报
回复
关注
dalianu 2007-09-18
  • 打赏
  • 举报
回复
To wzuomin() :

问题在动态加载的时候是:IPlugin plugin = (IPlugin)Activator.CreateInstance(type);//创建插件实例

还是:AppDomain domain =
AppDomain.CreateDomain("TempDom");
domain.Load(type);
ObjectHandle handle = domain.CreateInstance(assemblyName, type.ToString());IPlugin plugin = (IPlugin)handle.Unwrap();
也就是说是为插件创建一个应用程序域还是把插件直接加载到默认应用程序域中的问题。
wzuomin 2007-09-18
  • 打赏
  • 举报
回复
参考 构造插件式的应用程序框架
http://www.cnblogs.com/guanjinke/archive/2007/02.html

110,556

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧