WebGIS开发--滑铁卢(之一)

来源:互联网 发布:python密码字典生成器 编辑:程序博客网 时间:2024/06/03 12:50
IDispatch接口与IUnkown接口, 介绍区别的文章很多 ,我就不废话连篇啦.

原有组件, 全部定义为继承于IUnknown接口, 在C#语言中,开发桌面版系统, 没有遇到任何问题, 可是开发网站, 问题就来了.
例如下面代码:
{   IMap m = new MapClass();   IMapLayers lyrs = m as IIMapLayers;}
IMap IMapLayers都是组件类MapClass的接口, m,不为空, 可是, lyrs却是空的!
C#语言问题??可是, 一样的代码, 放在窗体项目中, 没有问题啊!
开发环境问题??去网站下载补丁, 补到最新, 问题依旧啊!

轮到我头大了!
是不是C#开发网站的时候, 还是翻译成类似脚本语言再执行呢?? 所以对于IUnknown接口的查询, 无法获取正确结果?

心中有了这样一个假设, 坐不住啊, 周六来验证一下--把用到的接口都改为继承于IDispatch,dual 类型, 然后再引入到网站项目, F5, 哗啦啦....错误不见了!

好了, 接着的一天里, 我就把所有组建库工程中的接口, 都改为IDispatch!

经此一劫, 我发现, 自己还要看看C#, .net framework的机制, 否则, 二次开发想无头苍蝇, 乱着出路
原创粉丝点击