首页 新闻 赞助 找找看

有关DHTML+Javascript做winform的GUI的问题

0
悬赏园豆:20 [已关闭问题]

最近在设计一个项目,用vs2008做。

程序需求:

要求灵活可随时定制的UI,即UI可以随时修改而无需编译即可运行。响应速度要足够快,像web那样点击按钮,http请求-响应然后刷新的方式肯定不够的。

根据使用需求可以可随时添加组合功能。

我的解决方法:

模块化,除了基本功能模块之外,其他功能开发好放在类库中,app应该可以自动加载。
界面使用webbrowser,表现形式是DHTML+JS,由JS调用各模块公布的接口方法。

遇到的问题:

据我所知webbrowser中JS调用可以有2种方式:
1.设置webBrowser1.ObjectForScripting = 某个对象;然后在js中直接调用window.external.对象方法;.
2.获取document对象的IExpando接口;然后使用反射add一个propery;关联这个propery和自己的对象;在js中调用 document.propery名字.对象方法.

我自己认为第二种方法好,可以动态附加多个对象供js调用,缺点没有办法在js调用对象方法之前做一些权限检查数据验证之类操作。

我最希望的方法是:js执行一个统一函数call c#代码,这个函数的参数包括js要调用的接口方法名以及相关参数,函数内然后根据对象方法名称动态检索所有加载的模块查找与js指定的方法名对应的接口方法(使用反射),然后根据其他信息校验参数权限验证后使用invokemember接口方法。

在写验证代码的时候我发现js调用c#方法时传递的参数如果是数组或者JSON类型,在调试器中看到的参数类型是System.__ComObject,无法获取更详细的信息了。

请大家给点意见。

 

xwing的主页 xwing | 初学一级 | 园豆:180
提问于:2008-11-01 18:08
< >
分享
其他回答(1)
0

最简单的方法:在js调用时把json对象转化成字符串传过去(提示:可以用for in取出js对象所有的属性名).

deerchao | 园豆:8367 (大侠五级) | 2008-11-01 23:35
0

刚刚提交 狂野---沙漠:

关注你的贴身教导--------http://bbs.langsin.com

狂野---沙漠 | 园豆:355 (菜鸟二级) | 2008-11-03 10:15
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册